java学习路线.docx
《java学习路线.docx》由会员分享,可在线阅读,更多相关《java学习路线.docx(13页珍藏版)》请在冰豆网上搜索。
java学习路线
1.学习路线
PS:
我也是专攻Java的,这是我在网上整理的关于Java的学习路线,以及每个路线需要的知识,如果你准备做这个,那你就应该掌握它,下面还附有网上Java培训班的课程计划。
且行且珍惜。
挖掘机还是这里强。
首先,我声明一下我不是打广告的。
所以把商家信息屏蔽掉一些。
首先是JAVA基础JAVASE
之后是JAVAEE,先学习Servlet、JSP,然后再学习Struts、Hibernate、Spring等框架。
JAVASE是JAVAEE的基础,Servlet、JSP是框架的基础。
还有数据库,个人建议学习oracle,当然其它的像MySQL,MSSQL,都可以,只要会一个,再学其它的就会发现很类似。
另外就是html,css,javascript,xml,这些是JAVAWEB编程要用到的。
建议学习顺序:
1、html,css,javascript,xml
2、JAVASE
3、JAVAEE,包括Servlet、JSP、框架
至于数据库的学习,在JAVA之前,之中,之后都可以,建议在JAVA之前,至少在JAVAEE之前。
推荐资料:
尚学堂JAVA视频,其中较为推荐马士兵的,在verycd上很容易就能搜到;
孙卫琴的《JAVA面向对象编程》,很不错的一本书,可以用来入门;
BruceEckel的《ThinkinginJava》,可以用来当作参考资料。
2.学习路线
本人今年毕业,在去年的时候,就在北京软件公司工作。
简单介绍一下学习经验:
1、从大三开始全心学习Java
2、先是学习JAVA基础,对于Java的学习,感觉一点非常重要,就是对于Java的入门,Java不入门,你会感觉很难,但是一旦入门,你将会感觉很简单,只不过,很多都没有学习而已,自己可以多花时间进行学习。
所以Java基础部门是学习Java的重点。
3、学习完Java的语法,开始学习j2EE
4、接着学习Javaweb部门,懂的如何制作web工程,这部分要学习的包括Html,JSP都是基本要学习的。
5、此时就开始接触一些简单的数据库。
6、这些都完毕之后,就是学习一些简单的框架,像经典的SSH等等。
总之,学习Java不要图快,把Java的基础学习好,同时学习到一定基础的时候,推荐看一下ThinkinginJava,只要你能够理解Java的编程思想,你会很快的入门,一旦入了门。
你就知道如何去学习,就是你自己丰富自己了。
就不需要别人带了,非常期望你也能起来,呵呵。
。
3.学习路线
怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西:
首先要明白Java体系设计到得三个方面:
J2SE,J2EE,J2ME(KJAVA)。
J2SE,Java2PlatformStandardEdition,我们经常说到的JDK,就主要指的这个,它是三者的基础,属于桌面级应用开发,这部分如果学得好很容易拓展J2EE和J2ME。
J2ME,TheMicroEditionoftheJava2Platform。
主要用于嵌入式Java,如手机,PDA等等。
J2EE,Java2Platform,EnterpriseEdition,就是所谓的企业级Java,适合企业的大型应用开发。
J2SE:
新手最初学习的时候先要从J2SE开始学起,所包含的内容主要分为:
面向对象概念的理解、Java基本语法的学习,Java桌面图形界面应用程序的开发,掌握常用的JavaAPI等(关键是要学会怎样查阅)。
重点:
Java基本语法(循环结构,数据类型,数组,运算符等)、Swing,awt,事件机制、文件输入输出流处理等
难点:
面向对象思想的理解(接口、类等)、线程、socket网络编程等
视频教程推荐:
孙鑫的Java基础视频教程、张孝祥的Java基础视频教程,讲的都很细,而且这两位老师在教学方面都有很好的经验。
J2EE:
在学习了J2SE之后,你可以尝试着慢慢过渡到J2EE,当然,学习J2EE海需要很多非JAVA技术的支撑,比如数据库技术,网页编程技术等等,待会我会详细介绍这两方面的内容。
J2EE有三个必学的框架,如果你说你学了J2EE,但又不会这三个框架的话,那会让人笑掉大牙,这三个框架分别是Struts、Spring和Hibernate,虽然这三个框架应用很广,但不代表这三个框架就代表了J2EE,J2EE还有很多其他的东西,比如EJB,作为一款重量级(此重量级不是指重量级选手那个意思,此重量级非彼重量级)框架,虽然这个应用慢慢的再被其他框架所取代,但EJB3.0的出现也给它带回一些生机,作为一个分布式应用的框架,也是大家要去学习和了解的知识。
当然,刚才说到J2EE包含的范围很广,即使我把我所了解的所有技术说出来,也并不能代表J2EE,这是一个很深很广的学问,需要大家以后再工作的时候慢慢去发现了。
我所了解的还包括:
JDBC:
Java数据库连接对象,基础中的基础,Hibernate也只是对它的封装而已
JNDI:
Java命名与目录接口,J2EE重要规范之一
EJBS:
上面已经提到过了
RMI:
提供远程调用方法的支持,主要用于程序分布式开发
JMS:
Java消息服务,中间件技术
JAVAIDL:
提供J2EE平台与CORBA交互能力和互联能力的技术
JTS:
组件事务监视器
JTA:
事务划分的一个技术
JAVAMAIL:
Java中的邮件技术
JAF:
Java启动框架,没研究过
Log4j,一款日志处理的框架应用
Junit:
单元测试的好帮手
freemarker、velocity:
两款不错的模板引擎
与Flash的交互Flex:
目前很多的SNS应用就是使用到了这个技术
Webservices:
想知道我们论坛天气预报的效果是怎么做的吗?
请关注这个技术
SOA:
面向服务架构,未来技术发展的趋势之一
……
不过前面介绍到得这些都不是J2EE的基础,是属于框架应用级别的.要真正把上面说到的知识掌握好,还是的学习J2EE最核心的东西:
JDBC、JSP、servlet和JavaBean,后面三个也是学习SSH的基础(Struts\Spring\Hibernate的简称).鉴于J2EE的内容太过复杂,建议大家最初只学习:
JSP,servlet和JavaBean,等这个基础掌握好再把SSH学习了,再对其他J2EE技术有个大致的了解就可以出去找工作了。
当然,找工作的前提除了把Java学习好,还会有一些其他的技术也是必须要掌握的
-_-我很简单,Java却要求我学这么多复杂的东西。
除了这些技术的东西,在这阶段,大家更多的是会接触到比如设计模式的东西,比如工厂模式、桥梁模式、单例模式等等,还要学习建模思想(比如UML建模等等)和软件生命周期等等。
这些是升华大家编程思想的手段和途径。
数据库技术:
数据库几乎是程序中不可或缺的一部分,在整个软件开发中更是占据了重要作用.数据库在整个软件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做软件,就要先设计好的数据库.目前数据库几乎都是关系型数据库,代表的有:
SQLServer,目前最新的好像是2008,我不是很喜欢追赶时髦,用的还是2005,不过也很不错了,在此之前还有2000.
MySQL,最知名的开源数据库之一,我很喜欢它的小巧耐用,学过SQLSERVER数据库再学它,无师自通,易如反掌.
ORACLE.甲骨文公司的产品,大型数据库,正版的一般公司买不起.只有看看了,不过现在Java开发60%都是会使用到这个数据库,再加上现在甲骨文已经把sun公司收购了,JAVA和ORACLE得关系更加暧昧,各位得多花些时间在这上面了.
除了这些,你还应该了解一些桌面应用软件开发用到的数据库,比如说sqlite。
你在制作安装程序的时候可以把这个数据库打包进你的安装程序。
网页编程基础:
网页编程基础要学的内容也比较多,但主要集中在以下这三个技术之上,大家每天看的各种样式的网页都是它们呈现的:
HTML:
超文本标记语言
CSS:
层叠样式表
Javascript:
浏览器客户端脚本语言
现在更是流行各种JavaScript库,比如:
Jquery、ExtJs等,你要是会其中的某一个库的使用,找工作soeasy。
J2ME:
如果你在学习了以上技术还不过瘾,可以再学习手机程序的开发,就我个人看来,开发手机程序技术其实蛮简单的,难点在于优化,比如怎么让你写的程序尽量的节约手机资源,“代码诚可贵,手机价更高“,所以不得不比PC机多考虑很多成本和实用性问题。
J2ME的学习的话,切忌不要单纯的再模拟器上测试,一定要找真机测试,真机和模拟器的效果之间差别是很大的。
更多手机开发技术,有兴趣的朋友可以和我一起探讨。
开发工具:
开发工具的选择主要还是看大家的习惯,我个人比较喜欢使用eclispe,功能很强大,也很好拓展其他的功能。
当让初学你也可以选择JCreator,或者最好就直接用记事本。
等你熟悉了Java代码之后,就可以使用JBuilder、eclispe或者netbeans这一类的工具了。
先说到这里先,以后大家一起完善这个帖子。
尽量再给大家整理一些学习的资源在这里。
也欢迎大家一起整理我文章中提到的一些技术资源和开发工具。
最后,再和大家分享一句话:
生命欣欣向荣,唯奋斗不息。
也和大家分享一幅Java学习路线图:
4.学习路线
Java学习的路线重点与目标
2008-01-0219:
05:
59| 分类:
计算机| 标签:
|字号大中小 订阅
本文将告诉你学习Java需要达到的30个目标,学习过程中可能遇到的问题,及学习路线。
希望能够对你的学习有所帮助。
对比一下自己,你已经掌握了这30条中的多少条了呢?
路线
Java发展到现在,按应用来分主要分为三大块:
J2SE,J2ME和J2EE。
这三块相互补充,应用范围不同。
J2SE就是Java2的标准版,主要用于桌面应用软件的编程;
J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;
J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
先学习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设计》和《javaservlet编程》,oreilly出的书总是那本优秀,不得不佩服。
学习jdbc数据库编程,j2ee项目大多都是MIS系统,访问数据库是核心。
这本应属于j2se学习中,这里拿出来强调一下。
学习jndiapi,它和学习ejb可以结合起来。
学习ejbapi,推荐书《精通ejb》
经过上面的这些的学习,大概可以对付一般的应用了。
有人说跟着sun公司的《j2eetutorial》一路学下来,当然也可以。
学习ejb设计模式和看代码(最重要)
设计模式是练内功,其重要性可以这么说吧,如果你不会用设计模式的话,你将写出一堆使用了ejb的垃圾,有慢又是一堆bug,其结果不如不用ejb实现(ejb不等于j2ee)
无论学习什么语言,都应该看大量代码,你看的代码量不到一定数量,是学不好j2ee的。
目前有很多开源的工程可以作为教材:
jive论坛
petstoresun公司
dunesun公司
等等,研读一个,并把它用到自己的工程中来。
J2ee其他学习
当你渐渐对j2ee了解到一定深度时,你要开始关注当前领域中的一些技术变化,J2ee是一块百家争鸣的领域,大家都在这里提出自己的解决方案,例如structs,hiberate,ofbiz等等,学习这些东西要你的项目和目标而定,预先补充一下未尝不可,但不用涉及太深,毕竟学习原理和理论是最最重要的事。
目前常见j2eeAPI
JavaServerPages(JSP)技术1.2
JavaServlet技术2.3
JDBCAPI2.0
JavaXML处理API(JAXP)1.1
EnterpriseJavaBeans技术2.0
Java消息服务(JMS)1.0
Java命名目录接口(JNDI)1.2
Java事务API(JTA)1.0
JavaMailAPI1.2
JavaBeans激活架构(JAF)1.0
J2EE连接器体系结构(JCA)1.0
Java认证和授权服务(JAAS)1.0
学习上面的某些API要以你的项目而定,了解所有他们总之是有好处的。
上面印证了大家说的一句话,java语言本身不难学,但是技术太多,所以学java很费劲。
回想一下,基本上每个初学者,在刚学习java的时候可能都会问别人这么一句话,你怎么知道的哪个方法(api)在哪个包里的?
呵呵,无他,唯手熟尔。
1基础是王道。
我们的基础要扎实扎实再扎实。
以上面的整个流程来看java的技术分支很多,要想完全掌握是绝对不可能的。
我们只有从中精通1到2个部分。
但是java也是有通性的,所谓万变不离其宗。
java的所有编程思路都是“面向对象”的编程。
所以大家在往更高境界发展以前一定要打好基础,这样不管以后是jree还是j3d都有应刃而解的感觉。
在这里强烈推荐“java编程思想”.
2所谓打好基础并不是说要熟悉所有的java代码。
我说的意思是要了解java的结构。
class,methode,object,各种套用import,extend让自己在结构上对java有个立体而且整体的了解即刻。
其实java的学习不用固执于对代码的熟悉,1来java本身带有很多demo,java2d的所有问题几乎都有demo的样例。
2来java是开放代码,即使没有demo网络上也有很多高手把自己的代码分享。
所以不要怕没有参考,参考是到处都有的。
3最后还有1点经验和大家分享,对sun的api一定要学会活用,不论是学习还是作为参考api都有很大的帮助,在完全了解java的结构的基础上,不论什么方法都是可以通过api来找到的.所以不要怕找不到方法,了解结构,了解api就能找到方法。
重点
精通:
能够掌握此技术的85%技术要点以上,使用此技术时间超过两年,并使用此技术成功实施5个以上的项目。
能使用此技术优化性能或代码,做到最大可能的重用。
熟练:
能够掌握此技术的60%技术要点以上,使用此技术时间超过一年,并使用此技术成功实施3个以上的项目。
能使用此技术实现软件需求并有经验的积累在实现之前能做优化设计尽可能的实现模块或代码的重用。
熟悉:
能够掌握此技术的50%技术要点以上,使用此技术时间超过半年上,并使用此技术成功实施1个以上的项目。
能使用此技术实现软件需求。
了解:
可以在实际需要时参考技术文档或帮助文件满足你的需要,基本知道此项技术在你运用是所起的作用,能够调用或者使用其根据规定提供给你的调用方式。
二:
基本要求
1:
html掌握程度:
熟练。
原因:
不会html你可能写JSP?
2:
javascript/jscript:
掌握程度:
熟悉。
原因:
client端的数据校验、一些页面处理需要你使用脚本。
3:
CSS掌握程度:
熟悉。
原因:
实现页面风格的统一通常会使用css去实现。
4:
java基础编程掌握程度:
熟练。
原因:
不会java你能写JSP?
开玩笑吧。
还有你必须非常熟悉以下几个包java.lang;java.io;java.sql;java.util;java.text;javax.sevrlet;javax.servlet.http;javax.mail;等。
5:
sql掌握程度:
熟练。
原因:
如果你不使用数据库的话你也许不需要掌握sql。
同时你必须对以下几种数据库中的一种以上的sql比较熟悉。
Oracle,DB2,Mysql,Postgresql.
6:
xml掌握程度:
了解原因:
AppServer的配置一般是使用XML来实现的。
7:
ejb掌握程度:
了解原因:
很多项目中商业逻辑是由ejb来实现的,所以呢……
8:
以下几种AppServer(engnier)你需要了解一个以上。
a:
)Tomcat
b:
)WebLogic
c:
)WebSphere
d:
)JRun
e:
)Resin
原因:
你的jsp跑在什么上面啊!
三:
选择要求(因项目而定)
1:
LDAP掌握程度:
了解 原因:
LADP越来越多的运用在权限控制上面。
2:
Struts掌握程度:
熟练 原因:
如果符合MVC设计通常会使用Struts实现C。
3:
Xsp掌握程度:
根据需要而定很多时候是不使用的,但在不需要使用ejb但jsp+servlet+bean实现不了的时候Xsp是一个非常不错的选择。
4:
Linux掌握程度:
熟悉 原因:
如果你的运用跑在Linux/Unix上你最少要知道rm,mv,cp,vi,targzip/gunzip是用来做什么的吧。
四:
工具的使用
1:
UltraEdit(EditPlus)+jakarta-ant+jakarta-log4j;
2:
Jubilder4-6
3:
VisualAgeForJava
4:
VCafe
以上的工具你选择你自己熟悉的吧。
不过强烈建议你用log4j做调试工具。
五:
成长之路
1:
html学习时间,如果你的智商在80以上,15天时间应该够用了。
至少你能手写出一个页面来。
2:
jacascript/jscript学习时间,这真的不好说,比较深奥的东西,够用的话一个礼拜可以学写皮毛。
3:
css学习时间,三天的时间你应该知道如何使用css了,不要求你写,一般是美工来写css。
4:
java学习时间,天才也的三个月吧。
慢满学吧。
如果要精通,那我不知道需要多少时间了。
用来写
jsp,四个月应该够了。
5:
sql学习时间,只需要知道insert,delete,update,select,create/droptable的话一天你应该知道了。
6:
xml学习时间,我不知道我还没有学会呢。
呵呵。
不过我知道DTD是用来做什么的。
7:
ejb学习时间,基本的调用看3天你会调用了。
不过是建立在你学会java的基础上的。
8:
熟悉AppServer,Tomcat四天你可以掌握安装,配置。
把jsp跑起来了。
如果是WebLogic也够了,但要使用ejb那不关你的事情吧。
SA做什么去了。
9:
熟悉Linux那可得需要不少时间。
慢慢看man吧。
10:
Struts如果需要你再学习。
目标
1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。
你应该十分了解UML,尤其是class,object,interaction以及statediagrams。
2.你需要学习JAVA语言的基础知识以及它的核心类库(collections,serialization,streams,networking,multithreading,reflection,event,handling,NIO,localization,以及其他)。
3.你应该了解JVM,classloaders,classreflect,以及垃圾回收的基本工作机制等。
你应该有能力反编译一个类文件并且明白一些基本的汇编指令。
4.如果你将要写客户端程序,你需要学习WEB的小应用程序(applet),必需掌握GUI设计的思想和方法,以及桌面程序的SWING,AWT,SWT。
你还应该对UI部件的JAVABEAN组件模式有所了解。
JAVABEANS也被应用在JSP中以把业务逻辑从表现层中分离出来。
5.你需要学习java数据库技术,如JDBCAPI并且会使用至少一种persistence/ORM构架,例如Hibernate,JDO,CocoBase,TopLink,InsideLiberator(国产JDO红工厂软件)或者iBatis。
6.你还应该了解对象关系的阻抗失配的含义,以及它是如何影响业务对象的与关系型数据库的交互,和它的运行结果,还需要掌握不同的数据库产品运茫热?
oracle,mysql,mssqlserver。
7.你需要学习JAVA的沙盒安全模式(classloaders,bytecodeverification,managers,policyandpermissions,
codesigning,digitalsignatures,cryptography,certification,Kerberos,以及其他)还有不同的安全/认证API,例如JAAS(JavaAuthenticationandAuthorizationService),JCE(JavaCryptographyExtension),JSSE(JavaSecureSocketExtension),以及JGSS(JavaGeneralSecurityService)。
8.你需要学习Servlets,JSP,以及JSTL(StandardTagLibraries)和可以选择的第三方TagLibraries。