主题:[转帖]java新手入门
一剑封喉
[专家分:710] 发布于 2004-11-18 08:31:00
转载
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
我在学习Java的过程中主要围绕以下几个方面来学习:
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
Java环境的搭建
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
解压安装。然后,进行环境设置。
1.对于Windows平台要进行以下设置:
set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar
2.对于Linux平台要编辑/etc/profile文件:
JAVA_HOME=your_install_dir/JDK/j2sdk
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/td.jar:$JAVA_HOME/jr
-e/lib/rt.jar:.
PATH=$PATH:$JAVA_HOME/bin
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
下面介绍一下JDK的几个重要的命令:
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令;
◆javac 编译器,由.java文件生成.class文件;
◆jar Java压缩打包工具;
◆Javadoc 文档生成器。
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
开始写自己的代码
现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
1. 先用编辑器写一代码(我用的是Linux的vi):
[stone@coremsg work]$ vi Hello.Java
public class Hello{
public static void main(String []argc){
System.out.println("Hello Word!");
}
}
2. 编译:
[stone@coremsg work]$ Javac Hello.Java
3. 执行:
[stone@coremsg work]$ Java Hello
Hello Word!
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
学习更多
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
1.Java Web编程
对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
2. J2EE的学习
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
◆ 了解J2EE中的技术术语的含义。
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
◆ 学习J2EE下的各种技术。
在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。
回复列表 (共489个回复)
461 楼
oscar36 [专家分:0] 发布于 2008-09-26 07:59:00
好像学习这门课不容易的样子哦
462 楼
rorom [专家分:20] 发布于 2008-10-20 20:14:00
好,我也来报个道
463 楼
fjordan [专家分:0] 发布于 2009-02-04 05:04:00
good
464 楼
冷月星光 [专家分:16520] 发布于 2009-02-05 15:13:00
好
465 楼
冷月星光 [专家分:16520] 发布于 2009-02-05 15:17:00
很好
466 楼
yuxiaoyu [专家分:0] 发布于 2009-03-16 13:08:00
[em2][em2]说的太好了!
467 楼
topwong [专家分:0] 发布于 2009-03-17 18:17:00
顶,楼主说的很好,比较切合实际。学任何一门语言都应该这样。
468 楼
chrisz [专家分:0] 发布于 2009-04-08 13:32:00
成为高手也不是不可能,如果有机会可以到好的软件公司得到正规部队的训练,相信耳濡目染也会成为高手,而对于高手来说,和高手过招就更能锻炼自己!我是上海一家猎头公司的chris,目前有一个职位是做java软件开发/测试的,具体情况如下:
公司性质:中美合资
公司规模:50人左右,计划今年扩大到100人(全是java开发/测试方面的精英)。
公司成立时间:2008年
公司老总:中国IT行业优秀企业家之一,曾前后担任IBM, 微软中国区总经理
公司网址:在建(今年人才招募完毕,发布新闻发布会,对外公开)
公司技术:近10年时间全球软件精英的设计和研发,此应用技术已初步完成了基础研究。技术总监是一英国人.
产品:下一代计算机运用平台(脱离主机,完全依靠网络),具体产品保密。
公司地点:上海闵行区东川路紫竹软件园
公司计划:预亏型,一到两年不会盈利,先将软件研发出来在投入市场。(不会受到金融危机的影响)
公司资产:一亿人民币,外加3000万美金。
公司培训:此技术具有很大的难度,对每个加入的人员都是一个很大的挑战。每个加入的人员都将接受美国架构师对此技术的培训,然后开始源程序的研读,学习和掌握下一代应用技术的编程规范和编程技巧,而后将在一个“特种兵”团队的环境中进行系统的设计和编程。
职位:资深java开发/测试
Java开发要求:
基本要求:
l 计算机方面学士学位以上的学历;
l 5年以上Java的编程经验;
l 能够进行英语听、说交流,熟练的英语读、写的能力;(能和老外沟通)
l 善于和具有团队的工作经验,具有较好的沟通能力;
专业技能要求:
l 理解和掌握OOP面向对象的编程思想和技能;
l 熟悉软件工程的技术,参与过详细设计;
l 具有有关平台下(Windows,Linux,Unix)的API编程经验;
l 熟悉多线程技术,JSP, Servlet, Herbnet及网络、数据库、嵌入式等相关技术;
l 具有有关行业应用开发的背景。如移动行业,教育行业等;
Java测试要求:
基本要求:
l 计算机方面大专以上的学历;
l 5年以上的软件测试经验;
l 具备良好的英语听、说、读、写的能力;(能和老外沟通)
l 工作认真、细致、 负责;
专业技能要求:
l 能够熟练地根据需求编写测试案例;
l 熟练掌握软件的功能测试和性能测试的技巧;
l 有使用软件测试工具(如WinRunner,LoadRunner)2年以上的经验;
l 能够用测试所需的脚本语言编写有关测试程序;
l 具有下列经验者优先考虑:
n 做过C/C++或Java编程;
n 了解面向对象的概念和技术;
n 具有一定的行业测试背景;
如果你或者你的朋友有意向可以发邮件或者电话联系我,下面是我的地址,你也可以发简历到该邮箱,我们这边会保持一个联系,有好的适合职位会推荐给你。
联系方式:chris@genhr.com 021-65090386
469 楼
chrisz [专家分:0] 发布于 2009-04-08 13:34:00
成为高手也不是不可能,如果有机会可以到好的软件公司得到正规部队的训练,相信耳濡目染也会成为高手,而对于高手来说,和高手过招就更能锻炼自己!我是上海一家猎头公司的chris,目前有一个职位是做java软件开发/测试的,具体情况如下:
公司性质:中美合资
公司规模:50人左右,计划今年扩大到100人(全是java开发/测试方面的精英)。
公司成立时间:2008年
公司老总:中国IT行业优秀企业家之一,曾前后担任IBM, 微软中国区总经理
公司网址:在建(今年人才招募完毕,发布新闻发布会,对外公开)
公司技术:近10年时间全球软件精英的设计和研发,此应用技术已初步完成了基础研究。技术总监是一英国人.
产品:下一代计算机运用平台(脱离主机,完全依靠网络),具体产品保密。
公司地点:上海闵行区东川路紫竹软件园
公司计划:预亏型,一到两年不会盈利,先将软件研发出来在投入市场。(不会受到金融危机的影响)
公司资产:一亿人民币,外加3000万美金。
公司培训:此技术具有很大的难度,对每个加入的人员都是一个很大的挑战。每个加入的人员都将接受美国架构师对此技术的培训,然后开始源程序的研读,学习和掌握下一代应用技术的编程规范和编程技巧,而后将在一个“特种兵”团队的环境中进行系统的设计和编程。
职位:资深java开发/测试
Java开发要求:
基本要求:
l 计算机方面学士学位以上的学历;
l 5年以上Java的编程经验;
l 能够进行英语听、说交流,熟练的英语读、写的能力;(能和老外沟通)
l 善于和具有团队的工作经验,具有较好的沟通能力;
专业技能要求:
l 理解和掌握OOP面向对象的编程思想和技能;
l 熟悉软件工程的技术,参与过详细设计;
l 具有有关平台下(Windows,Linux,Unix)的API编程经验;
l 熟悉多线程技术,JSP, Servlet, Herbnet及网络、数据库、嵌入式等相关技术;
l 具有有关行业应用开发的背景。如移动行业,教育行业等;
Java测试要求:
基本要求:
l 计算机方面大专以上的学历;
l 5年以上的软件测试经验;
l 具备良好的英语听、说、读、写的能力;(能和老外沟通)
l 工作认真、细致、 负责;
专业技能要求:
l 能够熟练地根据需求编写测试案例;
l 熟练掌握软件的功能测试和性能测试的技巧;
l 有使用软件测试工具(如WinRunner,LoadRunner)2年以上的经验;
l 能够用测试所需的脚本语言编写有关测试程序;
l 具有下列经验者优先考虑:
n 做过C/C++或Java编程;
n 了解面向对象的概念和技术;
n 具有一定的行业测试背景;
如果你或者你的朋友有意向可以发邮件或者电话联系我,下面是我的地址,你也可以发简历到该邮箱,我们这边会保持一个联系,有好的适合职位会推荐给你。
联系方式:chris@genhr.com 021-65090386
470 楼
chrisz [专家分:0] 发布于 2009-04-08 13:36:00
成为高手也不是不可能,如果有机会可以到好的软件公司得到正规部队的训练,相信耳濡目染也会成为高手,而对于高手来说,和高手过招就更能锻炼自己!我是上海一家猎头公司的chris,目前有一个职位是做java软件开发/测试的,具体情况如下:
公司性质:中美合资
公司规模:50人左右,计划今年扩大到100人(全是java开发/测试方面的精英)。
公司成立时间:2008年
公司老总:中国IT行业优秀企业家之一,曾前后担任IBM, 微软中国区总经理
公司网址:在建(今年人才招募完毕,发布新闻发布会,对外公开)
公司技术:近10年时间全球软件精英的设计和研发,此应用技术已初步完成了基础研究。技术总监是一英国人.
产品:下一代计算机运用平台(脱离主机,完全依靠网络),具体产品保密。
公司地点:上海闵行区东川路紫竹软件园
公司计划:预亏型,一到两年不会盈利,先将软件研发出来在投入市场。(不会受到金融危机的影响)
公司资产:一亿人民币,外加3000万美金。
公司培训:此技术具有很大的难度,对每个加入的人员都是一个很大的挑战。每个加入的人员都将接受美国架构师对此技术的培训,然后开始源程序的研读,学习和掌握下一代应用技术的编程规范和编程技巧,而后将在一个“特种兵”团队的环境中进行系统的设计和编程。
职位:资深java开发/测试
Java开发要求:
基本要求:
l 计算机方面学士学位以上的学历;
l 5年以上Java的编程经验;
l 能够进行英语听、说交流,熟练的英语读、写的能力;(能和老外沟通)
l 善于和具有团队的工作经验,具有较好的沟通能力;
专业技能要求:
l 理解和掌握OOP面向对象的编程思想和技能;
l 熟悉软件工程的技术,参与过详细设计;
l 具有有关平台下(Windows,Linux,Unix)的API编程经验;
l 熟悉多线程技术,JSP, Servlet, Herbnet及网络、数据库、嵌入式等相关技术;
l 具有有关行业应用开发的背景。如移动行业,教育行业等;
Java测试要求:
基本要求:
l 计算机方面大专以上的学历;
l 5年以上的软件测试经验;
l 具备良好的英语听、说、读、写的能力;(能和老外沟通)
l 工作认真、细致、 负责;
专业技能要求:
l 能够熟练地根据需求编写测试案例;
l 熟练掌握软件的功能测试和性能测试的技巧;
l 有使用软件测试工具(如WinRunner,LoadRunner)2年以上的经验;
l 能够用测试所需的脚本语言编写有关测试程序;
l 具有下列经验者优先考虑:
n 做过C/C++或Java编程;
n 了解面向对象的概念和技术;
n 具有一定的行业测试背景;
如果你或者你的朋友有意向可以发邮件或者电话联系我,下面是我的地址,你也可以发简历到该邮箱,我们这边会保持一个联系,有好的适合职位会推荐给你。
联系方式:chris@genhr.com 021-65090386
我来回复