Java学习路线(转)

来源:互联网 发布:php cgi是什么 编辑:程序博客网 时间:2024/05/13 22:42

先学习j2se

要学习j2ee就要先学习j2se,刚开始学习j2se先建议不要使用ide,然后渐渐的过渡到使用ide开发,毕竟用它方便嘛。学习j2se推荐两本书,《java2核心技术一二卷》,《java编程思想》,《java模式》。其中《java编程思想》要研读,精读。这一段时间是基本功学习,时间会很长,也可能很短,这要看学习者自身水平而定。

不要被ide纠缠 

在学习java和j2ee过程中,你会遇到五花八门的ide,不要被他们迷惑,学java的时候,要学语言本身的东西,不要太在意ide的附加功能,java编程在不同ide之间的转换是很容易的,过于的在意ide的功能反而容易耽误对语言本身的理解。目前流行的ide有jbuilder,eclipse和eclipse的加强版wsad。用好其中一个就可以了,推荐从eclipse入手j2ee。因为jbuilder更适合于写j2se程序。

选择和学习服务器使用配置

当你有了j2se和ide的经验时,可以开始j2ee的学习了,web服务器:tomcat,勿庸置疑,tomcat为学习web服务首选。而应用服务器目前主要有三个:jboss、weblogic、websphere。有很多项目开始采用jboss,并且有大量的公司开始做websphere或weblogic向jboss应用服务器的移植(节省成本),这里要说的是,学习tomcat和jboss我认为是首选,也是最容易上手的。学习服务器使用配置最好去询问有经验的人(有条件的话),因为他们或许一句话就能解决问题,你自己上网摸索可能要一两天(我就干过这种傻事),我们应该把主要时间放在学习原理和理论上,一项特定技术的使用永远代替不了一个人的知识和学问。

学习web知识

如果你是在做电子商务网站等时,你可能要充当几个角色,这是你还要学习:

html,可能要用到dreamwave等ide。

javascript,学会简单的数据校验,数据联动显示等等

j2eeapi学习

学习j2eeapi和学习服务器应该是一个迭代的过程。

先学习jsp和servlet编程,这方面的书很多,我建立看oreilly公司的两本《jsp设计》和《java servlet编程》,oreilly出的书总是那本优秀,不得不佩服。

学习jdbc数据库编程,j2ee项目大多都是mis系统,访问数据库是核心。这本应属于j2se学习中,这里拿出来强调一下。

学习jndi api,它和学习ejb可以结合起来。

学习ejb api,推荐书《精通ejb》

经过上面的这些的学习,大概可以对付一般的应用了。

有人说跟着sun公司的《j2ee tutorial》一路学下来,当然也可以。

学习ejb设计模式和看代码(最重要)

设计模式是练内功,其重要性可以这么说吧,如果你不会用设计模式的话,你将写出一堆使用了ejb的垃圾,有慢又是一堆bug,其结果不如不用ejb实现(ejb不等于j2ee)

无论学习什么语言,都应该看大量代码,你看的代码量不到一定数量,是学不好j2ee的

目前有很多开源的工程可以作为教材:

jive论坛

petstore sun公司

dune sun公司

等等,研读一个,并把它用到自己的工程中来。

j2ee其他学习

当你渐渐对j2ee了解到一定深度时,你要开始关注当前领域中的一些技术变化,j2ee是一块百家争鸣的领域,大家都在这里提出自己的解决方案,例如structs,hiberate,ofbiz等等,学习这些东西要你的项目和目标而定,预先补充一下未尝不可,但不用涉及太深,毕竟学习原理和理论是最最重要的事。

目前常见j2eeapi

javaserver pages(jsp)技术1.2

java servlet技术2.3

jdbc api 2.0

java xml处理api(jaxp)1.1

enterprise javabeans技术2.0

java消息服务(jms)1.0

java命名目录接口(jndi)1.2

java事务api(jta) 1.0

javamail api 1.2

javabeans激活架构(jaf)1.0

j2ee连接器体系结构(jca)1.0

java认证和授权服务(jaas)1.0

学习上面的某些api要以你的项目而定,了解所有他们总之是有好处的

上面印证了大家说的一句话,java语言本身不难学,但是技术太多,所以学java很费劲。回想一下,基本上每个初学者,在刚学习java的时候可能都会问别人这么一句话,你怎么知道的哪个方法(api)在哪个包里的?呵呵,无他,唯手熟尔。

======================================

j2ee总体的学习计划  

第一部分:

     java语言基础知识。包括异常、io流、多线程、集合类、数据库。(切记基础知识一定要时时刻刻巩固)

     要求:对java的封装,生命周期等有一定的了解;

           异常------掌握try-catch-finally的使用

           io流------掌握字节流、字符流和对象序列化的处理.。熟练使用各种输入、输出流类(inputstream、 outputstream、fileinputstream、fileoutputstream、datainputstream、 dataoutputstream、bufferedinputstream、bufferedoutputstream、reader、writer、 inputstreamreader、outputstreamwriter、bufferreader、bufferedwriter、 objectinputstream、objectoutputstream)。

           多线程-------掌握多线程实现的两种实现方法,分别是继承thread类与实现runnable接口。理解线程间的同步与互斥。

           集合类-------掌握set、collection、map、list、iterator、enumeration接口的使用,掌握hashset、arraylist、vector、hashmap、hashtable类的使用。

           数据库-------掌握jdbc api的使用,包括drivermanager类、connection接口、statement类和接口、preparedstatement接口、resultset接口。

           还有了解java反射机制,对java1.5的新功能必须有了解与使用,泛型等。.

           另外-------理解unicode、gb2132、gbk、utf-8、iso8859编码方式。

参考:《java编程思想》、张孝祥视频教学。

第二部分:

     java网络编程。包括socket、rmi、html、xml、jsp、javabean、servlet。

     要求:socket--------了解java.io包中的套接口类和服务器套接口类的使用。

           rmi--------掌握rmi基本工作原理、掌握定义远程服务接口类、远程接口类、客户端调用类和部署、编译rmi应用程序。

           html--------了解html语言的语法、各种标签。

           jsp-------掌握jsp2.0语法、隐含对象、el、jstl1.1、jsp自定标签。

           javabean-------理解javabean的特点和事件模型。

           xml--------了解xml语言的语法、dtd、schema。

           servlet---------掌握http协议、servlet工作过程、servlet会话跟踪、servlet过滤器、serlvet事件侦听器、配置web.xml。

           uml-------掌握用例图、类图、活动图、顺序图、状态图。

           aglet-------学会安装使用tahiti服务器,掌握aglet api。[以后再学,在彭老师的项目才会用到]

           开发工具------掌握rational rose 、ant 、cvs版本控制、myeclipse、dreamweave等开发工具使用。

           另外-------学习过程中学会使用tomcat、jboss/weblogic服务器

       参考书:《jsp2.0技术手册》林上杰编著;

             《深入体会java web开发内幕---核心基础》

       在jsp上不要花太多时间,在时间放在servlet多一些.

第三部分:

     流行mvc架构和java对象持久化技术。包括webwork、spring、hibernate

     要求:mvc-------理解mvc设计模式、处理过程。

           webwork-------理解webwork实现mvc的机制、工作流程。掌握配置webwork应用、webwork控制器组 件、webwork应用的国际化、异常处理、webwork标签库。(其实很多遗留系统用的是struts,但现在越来越少人用了,所以我鼓励你们学 webwork,但要必须要了解一下struts)

           spring-------掌握控制反转(ioc)、面向方面编程(aop)、事务服务(jta)、邮件服务(javamail)、持久化服务(dao、jdbc、orm)、远程服务(rmi)。

           hibernate--------理解orm,掌握映射对象标识符、映射关系(一对多、多对多、一对一)、映射类型、检索策略、检索方式、数据库事务与并发、管理hibernate的缓存。  

                   学习过程:先学习webwork2,再学习hibernate,最后学spring。

           下面的东西有时间了解一下:

           测试/敏捷开发-----关注测试,掌握junit单元测试框架,以及现在两个流行的mock工具easymock/jmock,熟 悉其中一种。(提示:测试非常重要,有效的测试可以减少很多开发的时间,当然刚开始觉得不耐烦,好像没有必要写测试代码,一定要说服自己尝试写测试代码, 或多或少的)  

           unix系统------了解最主要的shell编程,及主要的相关的命令行操作.    

           ajax-----了解基本的javascript,csss,以及ajax常用的用法,还有json框架.

                   (ajax的框架太多,但不要花太多时间去学,因为你不知道公司用不用ajax,而且用的那一框架你没有办法知道,所以懂最基础就可以了)  

   参考书:《webwork in action中文版》

         《精通struts》、《精通hibernate》孙卫琴著,

         《spring技术手册》林信良著

         《junit in action中文版》vincent massol著的

           书籍只是用来入门的,其他的工具必须多上英文网址,尽量多看一些英文文档,提高自己的水平,同时有空的时候也可以下载的一些开源项目的文档。

           最后一句话:无论什么技术,学了不要以为自己多牛,学技术只是为了更好提高自己做项目的能力以及提升自身的水平。你做的项目效果怎样才能最终看出你自身的水平。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击