怎么学习java,这是很多新手经常会问我的问题,现在我简单描述下一个java初学者到就业要学到的一些东西:
首先要明白java体系设计到得三个方面:j2se,j2ee,j2me(kjava)。j2se,java 2 platform standard edition,我们经常说到的jdk,就主要指的这个,它是三者的基础,属于桌面级应用开发,这部分如果学得好很容易拓展j2ee和j2me。j2me,the micro edition of the java 2 platform。主要用于嵌入式java,如手机,pda等等。j2ee,java 2 platform,enterprise edition,就是所谓的企业级java,适合企业的大型应用开发。
j2se:
新手最初学习的时候先要从j2se开始学起,所包含的内容主要分为:面向对象概念的理解、java基本语法的学习,java桌面图形界面应用程序的开发,掌握常用的java api等(关键是要学会怎样查阅)。
重点: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消息服务,中间件技术
java idl: 提供j2ee平台与corba交互能力和互联能力的技术
jts: 组件事务监视器
jta: 事务划分的一个技术
javamail: java中的邮件技术
jaf: java启动框架,没研究过
log4j,一款日志处理的框架应用
junit:单元测试的好帮手
freemarker、velocity:两款不错的模板引擎
与flash的交互flex:目前很多的sns应用就是使用到了这个技术
web services:想知道我们论坛天气预报的效果是怎么做的吗?请关注这个技术
soa:面向服务架构,未来技术发展的趋势之一
……
不过前面介绍到得这些都不是j2ee的基础,是属于框架应用级别的.要真正把上面说到的知识掌握好,还是的学习j2ee最核心的东西:jdbc、jsp、servlet和javabean,后面三个也是学习ssh的基础(struts\spring\hibernate的简称).鉴于j2ee的内容太过复杂,建议大家最初只学习: jsp, servlet和javabean,等这个基础掌握好再把ssh学习了,再对其他j2ee技术有个大致的了解就可以出去找工作了。当然,找工作的前提除了把java学习好,还会有一些其他的技术也是必须要掌握的。
-_- 我很简单,java却要求我学这么多复杂的东西。除了这些技术的东西,在这阶段,大家更多的是会接触到比如设计模式的东西,比如工厂模式、桥梁模式、单例模式等等,还要学习建模思想(比如uml建模等等)和软件生命周期等等。这些是升华大家编程思想的手段和途径。
数据库技术:
数据库几乎是程序中不可或缺的一部分,在整个软件开发中更是占据了重要作用.数据库在整个软件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做软件,就要先设计好的数据库.目前数据库几乎都是关系型数据库,代表的有:
sql server,目前最新的好像是2008,我不是很喜欢追赶时髦,用的还是2005,不过也很不错了,在此之前还有2000.
mysql,最知名的开源数据库之一,我很喜欢它的小巧耐用,学过sql server数据库再学它,无师自通,易如反掌.
oracle.甲骨文公司的产品,大型数据库,正版的一般公司买不起.只有看看了,不过现在java开发60%都是会使用到这个数据库,再加上现在甲骨文已经把sun公司收购了,java和oracle得关系更加暧昧,各位得多花些时间在这上面了.
除了这些,你还应该了解一些桌面应用软件开发用到的数据库,比如说sqlite。你在制作安装程序的时候可以把这个数据库打包进你的安装程序。
网页编程基础:
网页编程基础要学的内容也比较多,但主要集中在以下这三个技术之上,大家每天看的各种样式的网页都是它们呈现的:
html:超文本标记语言
css:层叠样式表
javascript:浏览器客户端脚本语言
现在更是流行各种javascript库,比如:jquery、extjs等,你要是会其中的某一个库的使用,找工作so easy。
j2me:
如果你在学习了以上技术还不过瘾,可以再学习手机程序的开发,就我个人看来,开发手机程序技术其实蛮简单的,难点在于优化,比如怎么让你写的程序尽量的节约手机资源,“代码诚可贵,手机价更高“,所以不得不比pc机多考虑很多成本和实用性问题。j2me的学习的话,切忌不要单纯的再模拟器上测试,一定要找真机测试,真机和模拟器的效果之间差别是很大的。更多手机开发技术,有兴趣的朋友可以和我一起探讨。
开发工具:
开发工具的选择主要还是看大家的习惯,我个人比较喜欢使用eclispe,功能很强大,也很好拓展其他的功能。当让初学你也可以选择jcreator,或者最好就直接用记事本。等你熟悉了java代码之后,就可以使用jbuilder、eclispe或者netbeans这一类的工具了。
先说到这里先,以后大家一起完善这个帖子。尽量再给大家整理一些学习的资源在这里。也欢迎大家一起整理我文章中提到的一些技术资源和开发工具。最后,再和大家分享一句话:生命欣欣向荣,唯奋斗不息。也和大家分享一幅java学习路线图:
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/