java学习路线
先学习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知识
如果你是在做电子商务网站等时,你可能要充当几个角色,这是你还要学习: .'l:8SxT?L
html,可能要用到dreamwave等IDE。 ZO(T u%xU
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著的
书籍只是用来入门的,其他的工具必须多上英文网址,尽量多看一些英文文档,提高自己的水平,同时有空的时候也可以下载的一些开源项目的文档。
最后一句话:无论什么技术,学了不要以为自己多牛,学技术只是为了更好提高自己做项目的能力以及提升自身的水平。你做的项目效果怎样才能最终看出你自身的水平。
1.被动反复阅读
通常一个新手在学习Java开发的时候,往往会选择买书去学习,首先这样的学习效率是非常差的,比如在学习html,css的时候,是完全不用看书的。书上大多数都是理论知识,你并不知道哪里是重点,所以每个人地方你都会去看,但是事实往往是大多数东西你都不理解。比如说学习Java的人都知道《Java核心技术》这本书,它的页数在700多页,你想要通过这本书来学Java,可能这本书半年你都看不完,就算看完了又能怎么样,看一遍不可能会,很多人就会选择重复去看,不仅浪费时间,效率也不高。这种学习方式是非常不可取的,你没有那么多时间来学习编程。
2 看书看视频中代码示例认为自己就理解了,从不动手编程
这是新手在学习Java的时候常见的问题,也是大忌,很多人都说,我课程听懂了,但是自己不会动手写,这首先就是学习方法的错误,这是新手学Java编程的大忌,不去动手写,不去跟编译器和开发环境做斗争,你永远不知道软件开发过程中的操蛋事情。
3 拖延
既然你选择了学习Java,就应该知道,我们这行需要不断去学习新的东西,拖延会让你成为一个真正的“码农”。这也是影响N多人不去学习的理由。解决的办法只有一个,马上去做!一旦你开始去做了,你就会发现一切没有那么难。你的计划再完美,你选的Java书籍再经典,你挑的Java视频水平再高,如果你不马上去看,去学,去动手实践,那永远也只是停留在空想的阶段。成功学习的典范就是成功战胜拖延症的典范。
4.喜欢自己闭门造车
学习Java专业知识,不是都靠自己顽强的意志,更多的是需要跟别人交流,重要的就是跟比你强的人交流,加一些氛围比较好的Java交流学习群,或者别人的一句话就能让你茅塞顿开,学技术切记不能闭门造车,学习的大忌。
如果大家对于学习Java有任何问题(学习方法,学习效率,如何就业),可以随时来咨询我,这是我的Java交流学习群:四九四,八零一,九三一,多多交流问题,互帮互助,群里有不错的学习教程和开发工具。
5.遇到问题搞不清楚,只能百度,然后自己一团糟
遇到问题的时候,不假思索「百度」,但是很多时候我们是浪费了大量的时间,也搞不清楚自己的问题在哪里。当然了,我这里特指“Java初学者”而不是已经工作中的人。那些已经在做Java工作的人当然很多问题都要自己解决,但是对于一个Java新手来说,能找老师尽量找老师,很多问题我们新手不必浪费太多自己的学习时间,因为那样的效率太慢了。
1 与其反复阅读,不如经常回顾
大家记住,对于Java技术性的书籍,绝对不是让你一页一页去看的,像是完成做一样。有一句话说:温故而知新,可以为师矣。学过的知识点,你时常去复习一下,你每天都见到你自然就记住了,而不会像很多人说“学了就忘”你不总去回顾,那能不忘记吗?不如有意识地总结回顾看过的Java书,学过的知识。只需要每晚趟在床上的时候,回想一下今天都学到了什么?今天自己有进步一点点吗?
2 多做练习,多写代码,从错误中学习
一个优秀的Java开发者,没有什么聪明人,他们都是一行一行代码积累出来的,对于一个Java初学者来说,如果你想要找到一份不错的Java工作,你只能是大量的练习,形成一个好的学习习惯。在初学阶段哪怕对着书本敲也没有什么问题。认真完成书中留的习题,在自己没有尽最大努力的情况下面不要去看答案。不要怕犯错,每一次犯错都是自己进步的机会。
3 多总结问题的解决方案,多写可复用的代码,拒绝复制粘贴
每天把学习中遇到的问题最后的解决方案总结一下,想想为什么出现了这个错误,加深自己的印象,是什么导致了这个错误,犯过一次的错误就尽量不要犯第二次,导致错误的根本原因是什么。是自己的逻辑混乱,粗心大意,还是程序太复杂?
4 对于自己想要学习的内容,制订一下计划,有节奏地学习
一个学习习惯好的人,做什么事情都会有一个明确的计划,对于一个Java初学者来说,一份好的学习计划是你开始的前提,因为学习一个东西最怕三天打渔,如果能够持续地学习一个东西,我可以把它学习地很好。这时候,你就应该结合我自身的情况,选择一段最佳的学习时间,在这段学习时间里我可以不被打扰,保持高度专注。比如每天早上6.30起床看一个小时书。
5.注意劳逸结合
对于电脑工作者来说,多参加体育锻炼,多去户外走走,运动能够增强人的记忆力,并且有时候还能产生灵感。如果身体不好,你的学习效率会非常低,人的精神状态一旦非常好的时候,做什么都会如鱼得水。想要成为大神,身体好是前提条件。有人30岁成为大神,我资质不好,我35岁成为大神总可以吧。切莫在30岁的时候就把身体弄跨了,然后35岁转行了,永远失去了成长为大神的机会。
6.向别人解释你的知识,多与人讨论
一个NB的Java开发者,一定是一个很会思考的,有能力就多写博客,多分享自己的所学所思,只要你能写出东西,不怕你写的太低级,这些对于学习者自身也是非常有益的。通过用别人能够理解的语言来解释你学到的东西,本身就要求你对该知识充分理解。另外,很多人经常感叹「跟你讨论一下,我马上变得有思路了」,这其实就是交流的作用。
我做开发十多年的时间,如果大家对于学习Java的学习方法,学习路线以及你不知道的疑问,都可以随时来问我。上面有我的java交流群。
你是学习方法不对,你应该向老师同学询问学习的方法,再去学习,这样才会有一个好成绩,好方法
人类语言是想通的,计算机语言也同样!
要学习编程语言,以下三点,个人认为是极其重要的
1.敢于尝试。
有些问题,不是教材上让你怎么做,你就怎么做才能学到东西的,恰恰相反,你必须不按它的要求去做,你才能学到你本来该学到的东西
2.多练习。
多练习,一短代码,不仅仅是能打出来就算完了,一段规范代码要求有严谨的思路,代码简练,清晰易懂。这就要靠我们的勤奋。多练习,在自己大脑中形成一种思维模式。
3.善于总结。
犯了错误,就记住它。在同一个错误前,摔倒两次,是最可笑的。
很多人最后又回来重学java才找到适合的工作,我也是其中受害的一个。不过我没有回炉重造,而是报了远程班级狮课下班以后晚上学习……