最后一篇介绍几个常见的概念
设计模式
这可不仅是java独有
我看的书就是c++和smalltalk例子的
先说说什么是设计模式
模式是什么?模式是经验的总结,潜规则的抽象
什么意思呢?比如说我们坐飞机,上飞机前需要经过几个步骤
什么安检领取登机牌之类的,这一套流程能不能改呢?
可以,但为什么几乎全世界的航空公司登机前都是这一套流程呢?
因为航空公司经过长期实践之后得出了一堆结论和经验
并认为这样做才是最安全,或说是最有效率的
这就是模式,模式是编程高手之间交流的桥梁
两个编程高手通过统一命名的模式了解对方的思想
当然不借助模式可不可以?当然可以,只是模式无处不在,你不知道而已
又比如吃饭,每吃一口饭,我们要先端碗,拿筷子,张嘴,塞饭入口,咀嚼最后吞咽
这就是一套模式,我们给这套模式命名为吃饭
那么当老爸叫吃饭的时候,我们就能明白什么意思
而不用老爸进来呓呓啊啊并比画上半天,哑语也不是这么用的
这就是模式,已知的模式有400多种//好象更多,不记得了
比如数据库有数据库的设计模式,编程有编程的模式等等
面向对象有常用的21种模式,需要掌握,主要分为创建,行为,结构三类J2ee有J2ee的模式,Sun公司出了一本书叫《J2EE核心模式》可以拿来看看
必需要指明的是,模式不是规范,比如吃饭模式
没有人规定你吃饭非得要那么吃,你可以端碗,上抛,张嘴在下落后连碗一起吞咽
这也可以,只要你愿意,同样,只要你愿意,你就可以不遵循模式
模式之外还有反模式,学模式不可定势,不要学死,活学活用,无招胜有招才是最高境界JavaDoc 文档工具,极其好用
可以根据注释自动生成HTML文档
Ant
98年,有一位程序员在从欧洲飞回美国的飞机上想到了这么一个东西
从而改变了整个世界,他的名字叫James Duncan Davidson 组织管理工具,可以这么描述它
比如你想在编译之后自动再次生成JavaDoc 那么你只需要编辑Ant脚本//对,就像Windows脚本那样
然后批处理就可以了,不过现在Ant已经广泛集成到IDE中去
不需要自己手动编写,不过如果想要炫炫,据说此招百试不爽JUnit 测试工具,Unit家族可不只有JUnit 还有其它版本的,这个不细说,具体实践一下就明白了
POJO//Plain Old Java Object
就是传统的Java对象,也就是一个JavaBean 由虚拟机来掌握其生死
常用的两个管理构架/规范是Spring和EJB容器
命名由来是某人//名字我忘了
觉得我们使用了太多的规范,以至于我们都忘记了纯粹的java对象
以至于我们都忽略了它的存在,所以叫了这么一个名字
以唤醒人们的记忆,这个意义上来说EJB其实不能算是POJO 毕竟遵循了一堆的接口,但是不管怎样,接口归接口,还是没有继承类
没有被强加什么//遵循可以写空方法假遵循
所以说还是POJO也对
但是由于这种东西缺乏管理,不象Servlet有专门的容器管理并继承了一定的类
而没有管理的对象在虚拟机中是很危险的,因为垃圾回收机制各个虚拟机不同
而且也不怎样,极有可能长时间不回收,这样在企业级的应用中呢
就有可能造成内存大量被占用从而死机,毫无疑问,这种机制需要优化
这种优化就是通过EJB容器或者Spring构架来实现
这么做还有一个好处就是迫使程序员对每一个类做封装
强迫他做管理,以达到防止内存泄露的目的,内存泄露最经常出现的错误就是
引用未释放,引用最典型体现在new这个关键字上,new得越多引用得越多
随着时间地增长,有可能导致循环,不停new new new new new..... 其中哪怕只要有一个new处理不当,虚拟机无法回收内存
那就极有可能完蛋,而且这种小bug越是在大的项目越是难以找到
有可能因为一个人而影响整个项目组,所以不妨记住我的一条经验
好的系统框架不应该在业务逻辑流程中出现new关键字
现在不理解也无所谓,将来有一天会明白的
SOA 面向服务的构架
不说太多,这个属于上上层建筑
不过不妨记住我的一句话,可以帮助理解这个概念
面向什么就是对什么做封装
面向对象就是对对象做封装
面向服务类似,剩下的靠悟性
反射
1.4新增功能,非常强大
通过反射,程序可以解析出类本身的属性也就是变量//注意这里说的属性不是.net里面的属性,我不喜欢微软造的新名词,乱
还有行为也就是方法,然后通过invoke()方法调用该方法
甚至可以新增对象等,java首创,本是其它语言所没有的
后来被微软抄了去,利用该功能,开源框架广泛受益并大量采用,近乎疯狂地使用
具体就不说了,最后要指出的是,有一种说法是利用反射会降低效率
在早期的时候,的确是,现在不会了,放心使用
容器5.0以后的版本在J2SE中都出现了容器
各位甚至可以自己尝试用标准库去使用容器
推荐网站
www.javaeye.com //java视线论坛,Hibernate国内的权威
dev2dev.bea.com //bea的dev2dev社区,用WebLogic首选的好去处
www-128.ibm.com/developerworks //ibm developer works社区,ibm产品的老家
www.jdon.com //j道,Jboss国内相对讨论会多一点的地方,有自己的框架
www.matrix.org.cn //matrix,有自己的框架,很清新的论坛
jcp.org //JCP,前面说到过了
sourceforge.net //开源的东西几乎这里都可以找到,除java外还有游戏共享等
saloon.javaranch.com //我常去,人气不错
www.apache.org //阿帕奇老家
www.jboss.com //Jboss和Hibernate老家
www.springframework.org //Spring老家
www.wiki.org //非常好的百科站点,可惜国内被封,创始人加入了Eclipse zone
www.google.com //你要的这里有,不信?输入关键字再按一下那个靠左的白色按钮试试
书籍
《Thinking in Java》//实话说,一般,尤其是翻译后的版本,原版还行
《Java教程》//电子工业出版社出版的那本,上下册,很厚,但翻译得不错
《21天学通Java》//入门极好,但是《21天学通j2ee》极烂,不要买
《Mastering EJB》//翻译过的书质量我不清楚,估计不怎样,请看原版书籍
《精通Hibernate》//看清楚作者,孙卫琴,其它人的别买
其它的可以不用了,网络上的远比书上来得多,来得好,虽然也来得杂
最后的建议
一,不要做一个浮躁的人
二,学好英语,很重要
三,阅读源代码和文档
四,共享源代码,不要做一个功利的人
五,热爱Java
分享到:
相关推荐
MATLAB初学者入门视频:MATLAB简介和给初学者的建议,视频时长70分钟,从学习MATLAB的意义,到MATLAB的界面介绍和基本操作,代码书写,再到MATLAB的学习方法,全方位带领初学者入门!
初学者入门经典:Java环境配置大全,相当经典。
初学者必看!让你真正领悟什么叫面向对象!!
资源名称:初学者必备:HTML语法教程资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
写给初学者:Java程序员工作总结.doc
给数据结构初学者:跨过算法和程序之间的鸿沟.doc
2021年给数据结构初学者:跨过算法和程序之间的鸿沟.pdf
Python编程初学者指南.pdf
高清带目录《Box2D物理游戏编程初学者指南》系统地梳理学习Box2D物理游戏编程的各个知识点,并通过图解、问答、举例等形式深入浅出地讲解初学者觉得晦涩难懂的概念、术语。 《Box2D物理游戏编程初学者指南》最后,...
C语言:从初学者到初学者-Crystal
对于初学者来说,Java提供了一个良好的学习平台,因为它的语法清晰,易于理解。"java小项目 适合初学者"这样的资源集合是入门Java编程的理想起点。 这个标题表明,你将接触到一系列小型的Java项目,这些项目通常是...
标题"适合初学者 eclipse 极为简易的android软件记事本代码实例",主要包含三个关键信息点:初学者、Eclipse和Android记事本应用。这表明该资源是一个针对编程初学者的教程,使用Eclipse集成开发环境(IDE)来创建一...
网络编程初学者必备:从零开始的详细教程与资源汇总,c语言开发网络编程
**Selenium初学者指南** Selenium是一款强大的自动化测试工具,尤其在Web应用程序的测试领域,它占据了重要地位。本指南专为初次接触Selenium的读者设计,旨在帮助你们快速掌握这个强大的工具,从而提高测试效率,...
在实践中学习是最有效的学习方法之一,所以这些源代码示例对于初学者来说是非常宝贵的资源。 通过深入研究这些示例并尝试修改它们,初学者不仅可以熟悉VB的基本语法,还能提升解决问题和逻辑思考的能力。同时,他们...
本书从初学者的立场出发,为广大初学者提供了一个FPGS入门学习平台,以深入浅出的方式介绍FPGA的基本原理、Verilog语言和应用设计。但作为一个FPGA的初学者必须先了解以下几个问题:何为FPGA?为什么要学习FPGA?...
初学者学习用大鱼吃小鱼,比较初级,适合新手学习用!
写给DSP初学者:轻松入门,快速精通,初学入门的好书。
资源名称:BOX2D 物理游戏编程初学者指南资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。