这个指南主要面向没有太多开发经验的Java初学者。说来这样的同学在我们学校为数众多,常见的一个情况是,许多同学到大四毕设才开始真正尝试把一门语言使用到工程中去^_^
文章中都是一些个人的建议,难免错误疏漏和争议,大家有什么想法和意见多提提啊~
1、为什么学Java?
Java在工程界使用广泛,在编程语言使用排名榜上现在稳居榜首,所以学Java可以帮助你找一份好工作。
语言层面来说,和C++比较,Java更简单纯粹一点,学习和使用都不那么痛苦,也更容易体会到编程的美感。和C#比较,Java在开源项目更多,平台支持也更多。
从找工作来看,由于Java应用广一点,所以工作机会多一点,但是C++难一点,所以收入是C++职位高一点。但我希望初学者不要过于看重这一点,一来待遇这个东西并不绝对,风水轮流转;二来学好一门语言后再学另一门语言会快很多。
2、Java的应用
Java程序更多的跑在服务器端,而不是桌面。很多大公司如IBM、BEA、Oracle使用它开发服务器软件。Java也被广泛用于建立网站或者说B/S结构的企业应用。Java的Applet在企业内部网也比较流行(事实上我这次去工体购买周杰伦演唱会门票时发现其订票选位系统就是用Applet做的)。
一度Java被认为不适合开发桌面程序,但在IBM推出Eclipse之后,人们发现使用Java也可以开发出如此好看的桌面程序。
总结一下,Java应用广泛。
3、关于J2ME,J2SE,J2EE
在Java的发展过程中,1.2是一个脱胎换骨的版本,被成为Java 2。现在这几个名词被换成了Java ME,Java SE,Java EE。
后面那个E是Edition(版本),M代表Micro,S代表Standard,E代表Enterprise。
我们一般说的Java是SE,标准版。学习Java一般都是先学这个,里面包含了Java最经典的类库比如String,Map,Thread,Socket等等。
Micro Edition被使用于手机或其他嵌入式系统(比如数字电视机顶盒)。为什么要单独出来这个版本呢?因为手机之类的东东内存和处理能力有限,所以这个版本的Java也要小点。
EE,企业版,很牛的一个名字。不过这个名字包含的意义和最初已经有点不一样了。最初的EE是围绕EJB的,需要跑在很牛的服务器中间件上。现在可以认为Struts、Spring、Hibernate这样的技术组合起来,建立有点像网站形式一样的东西,差不多就叫Java EE了。
4、Java书籍
其实呢,根据我的经验,学一门语言,一本书肯定是不够的...我喜欢不同的书换着看来看去,因为对于同一点,不同的书的阐述方式和角度不同,你看第一次和第二次的感觉也不同。(由于第二次的感觉一般比第一次清晰,所以经常会有第二本书比第一本书好的错觉 Orz...)另外,网络是个很好的资源,大家要多用搜索,善用搜索。
学习Java的第一本书可以是图书馆里的一本随意的、薄薄的、中国作者的、可能印刷质量还很差的小教材。它会带给你对Java最初的感觉和认识。然后有了这么一点感觉之后,可以看看经典的教材了。
经典教材首推《Core Java》(Java核心技术),本书最大的特点是Practical,就是很面向实际应用,让你对Java会被使用在哪里,怎么使用有较清晰的感觉。我建议先看卷一前七章,按照书上的讲解一个一个程序敲打下来,也可以拿个本子做做笔记,这会给你自己一个很扎实的感觉。(我当年就是这么傻傻的干的,汗一个~)还有就是是里面提到什么东西让你以后再看你就赶紧跳过去。为什么要看第七章呢,我觉得这个可以让你明白Java的事件处理模型,也能让你对监听者模式有点感觉,The first step into Patter World。
看完前七章,后面的东西就不用按顺序看了,Java的应用很广,网络、线程、数据库、图形化界面等,都有相应的包。建议用到什么看什么。
这个阶段一定要多些练习啊~
《Java编程思想》也是一本经典书籍,名字就很酷,一下子提高到了思想的高度。事实上也确实是这样,里面经常会讲到为什么Java被设计成这样,设计成那样会不会好点----这种讲解对我们定义的初学者来说,要求高了点,不如《Core Java》那样面向编程。建议在对Java多了一些了解以后看。
另外网上有很多其他形式的资源,比如张孝祥的视频以及很多PPT,也可以作为辅助。总的来说,学Java要看书,要动手实践,最好旁边有人带带就更好了哈~
5、Java编辑器
我建议初学者应该先用文本编辑器(比如UltraEdit)编写简单的Java程序,手动配置Path和ClassPath。传说中所有学Java的老同志们都经历过这个痛苦的过程,看着简陋的命令行上的出错信息崩溃抓狂。必经之路、必经之路...唔...这里说两句,我做得作为初学者,心态一定要好,千万不要急。米卢说过两句话:一、态度决定一切;二、慢慢来。所以,遇问题,先冷静,可以尝试上网查查,翻翻书什么的。如果什么时候头涨了,可以休息一下,干干别的。不要想一定要一个星期就怎样怎样,也不要一遇到问题就抓人来问。不过我觉得北邮的同学们都是好同学,都很有能力啊~
然后在会遇上了足够的HelloWorld编译问题后,就可以使用IDE(集成开发环境)了。使用一个好的IDE可以大大提高开发效率,也会让你体会到代码的美感,开发的快感。这是真的,至少Eclipse让我有这个感觉。
IDE里我首推Eclipse,当然很多人说NetBeans很不错,还有IDEA。JBuilder就不推荐了。
初次使用Eclipse在菜单上各个按钮尝试多按几下应该就能明白个大概,也可以在网上稍微找一些资料。用Eclipse写HelloWorld时要注意要新建Java工程,然后新建类,Java是面向对象的,所有的Java程序都要包在类里面。
Eclipse有些地方挺好的,比如:
a)编辑的时候,代码下面会即时显示红线表示这句代码有错。这时在该行按Ctrl+1会显示一些纠错建议。
b)如果输入完毕没有错,Java程序就已经编译好了(Eclipse自带了一个增量编译器)。右键Run As...就可以运行了。
c)看代码的时候,多按按F3和F4,可以看到源代码和类继承结构;
d)修改代码时右键点击refactor(重构),可以批量修改变量名,包括在其他类中使用到的。
e)Ctrl+/能够自动补全代码。
其他更多功能大家慢慢都会使用的。
6、Java的学习途径
有的朋友说“感觉java越看越多,像个无底洞,特别是其中的类、库、包之类的问题,想了解一下初学者要了解的一个基础,要看到哪种程度就可以了”。
没有工程经验的同志们老是觉得语言的东西看再多也不够拿来使用(而有工程经验的同志有时又会轻视语言)。
Java很庞大,它有数不清的开源类库,有着丰富的解决方案,但总的来说,我觉得学完如下东西后可以尝试写一些东西了。
a)Java的基本变量类型和语法
b)面向对象的基本概念和语法,诸如:对象和类的概念,构造函数,public private等的含义,继承的语法(子类和超类),接口的使用。还有垃圾回收。
c)异常处理机制;
d)然后有些常用类库:String、IO流、HashSet和HashMap之类也要看看。
之后一些我感觉就相对高级了点,Thread、Socket、DataBase(JDBC)。用到什么看什么吧。图形界面也是用到了再学吧,不过可以看看里面的事件注册以及监听模型,就是
button.addActionListener(new
ActionListener() {
public void actionPerformed(ActionEvent event) {
setBackground(backgroudColor);
}
}
}
这样的代码。要习惯这样的代码,这也是匿名内部类最常见使用的地方了。
学习过程中要注意做点练习,比如给大家个小题目:
计算一个目录下的所有Java程序的实际代码总行数。实际代码行的意思是去除注释行和空行。其考察点为:基本语法、String、File、IO。如果可以,考虑使代码拥有扩展性,就是代码能够方便的加上新的功能,比如能不能方便的支持以#开头作为注释的文件,后缀名不同的文件。这样可能会用到一些继承关系和接口等等,至少思考思考这个问题会有好处。
阅读(638) | 评论(0) | 转发(0) |