用.NET快5年了,不过最近公司项目客户大都要用J2EE架构(政府部门都号称要基于跨平台,开发源码软件),另外加上前阶段负责完成了一个小型的J2EE项目,只负责其中需求和项目管理工作,没涉及具体编码设计;抱着拓展视野与工作实际需要的态度觉得系统Java学习的必要性了。
在之前,也对我们公司目前Java与.NET项目开发周期,性能,及维护性做了一定调查,可能是我们公司的JAVA程序员技术水平和经验都稍微欠缺,可能大多项目都是比较小的项目,所以客观上,采样J2EE平台项目开发周期比.NET要长一倍以上,而且可能在架构设计方面也不是很成熟,造成软件性能不稳定,而且还有经常当机情况发生,但是没办法,最近新签的合同项目都还是要采用J2EE构架,所以说,很多时候不是程序员决定要使用什么语言、平台,而且客户决定我们使用什么。
废话少说了,就谈谈我是怎么学Java的,所以还是在大部分Java程序员推荐下读了下《Thinking in java》3,由于英文不是很好,采用英中文对照模式,就是原版看不懂就对照中文解释,中文版是shhgs翻译的JIT第三版,作为理论、语法部分慢就慢点,关键是透.开始本来想直接读中文版算了,但是总是感觉有些词理解不是很好,最终才采用这种方式的.在阅读过程发现果然JAVA跟C#实相似的不能再相似,基本上JAVA有的C#就有,不管是对象继承、接口、垃圾回收、异常处理都基本一样,只有个别关键字差别,比如继承Java 采样关键字“extends”,C#采用冒":"号形式,不过源代码编译.NET采用中间语言(IL),而JAVA是字节码编译方式。前面5章看得稍微慢点,后面就很快带过,结果读这本书花了3天时间。
既然Java语法已经有个初步了解,接下了就开始配置开发环境了,采用Eclips+tomcat5.5+jdk.5,JAVA有一点特别好,就是所有开发环境不需要安装,直接配置即可,本来就安装了.NET一系列的软件,这下省安装麻烦就很开心了,配置确实比.NET麻烦啊,一个关联一个,不过还算顺利,打开英文版Eclips开发环境,发现里面全都是插件,眼花缭乱,不知道哪个插件是用来完成什么功能的,可能这就是JAVA程序员入门最困惑的地方之一,还有个更困惑的就是JAVA里的充满各种各样的概念:J2ee,J2se, spring ,Applet,servlet,Hiberate,javabean,javaServlet,MVC,strcts,EJB.要完全理解这些概念确实要花费一定时间,而且在构建WEB项目过程中该采用哪些技术组合,各种技术组合的优势劣势都在考虑之列.在同事推荐下看浏览了<Hibernate原理与配置快速入门.pdf>电子版,感觉这种模式应该不是J2ee常用的模式,接着花2天时间快速浏览了一遍JSP开发详解,我觉得这本书对入门者非常不错,简单易懂,把WEB开发的方方面面都讲到了:特别是WEB部署,环境变量page->Request->Session->Application->ServletContent等等.其中Java与C#的事件处理都是实现了事件源-事件响应者机制,但又不完全相同。Java实现的是一种事件源与事件响应者两级实体对象方式,这里的事件响应者也是事件监听者,而C#实现的是一种事件源-代理-事件响应者三级实体对象方式。 .当然java在Web开发还提供了其它很多便利,比如网站(应用程序)登陆访问权限约束通过配置Web.xml的Filter属性实现.
元旦这两天正在读<基于MVC的JAVA WEB设计与开发>,目前刚读完第三章,后面会有相关读后感发表,读完这本书过后就应该读一读EJB相关数据,希望能在本个月内读完这<基于MVC的JAVA WEB设计与开发>,<精通EJB>两本书.如果各位达人有更好的相关书籍还麻烦推荐,谢谢!