- 在线时间
- 0 小时
- 最后登录
- 2007-11-12
- 注册时间
- 2004-12-24
- 听众数
- 2
- 收听数
- 0
- 能力
- 0 分
- 体力
- 2467 点
- 威望
- 0 点
- 阅读权限
- 50
- 积分
- 882
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 205
- 主题
- 206
- 精华
- 2
- 分享
- 0
- 好友
- 0
升级   70.5% 该用户从未签到
 |
本文选自:开放系统世界——赛迪网 2002年12月18日
5 x: u9 ]0 H9 y- D% A/ FJava总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 6 q8 M4 Q, L6 D
: i! c p3 U j9 N3 S5 a' x% y
我在学习Java的过程中主要围绕以下几个方面来学习: ! x6 w5 a. y% Y# G& r$ J1 U+ K
5 N+ H+ f' |- i, w' j$ m
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 : O6 `- f& F0 _" f& t
+ H* o. z& C# w" M
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 * M8 M6 {. ? L! g7 t* Q
. Q1 w ?/ d6 M5 F' V1 i+ X
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
( T- C# c1 a4 A. n( T5 ~" W& |0 [( l# M4 g# `
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。
, k C' w& M& C: c: C( j5 M* @: a2 S9 s5 }
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
C6 ?, w3 V; F* i! V. j; |, D. \: k) }5 j* @
& F9 }& x3 |& p4 Y<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>% m" j2 O w) z5 T
9 c# T+ p/ I h0 \+ O+ d
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 % M+ }) p- K& N% u" l+ V
# Y4 m( i# W( g# l6 n
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
1 Z( X s- G$ o8 x: l t P' I' W( ]; S
解压安装。然后,进行环境设置。 & N# U7 I" X: Z. q4 Q8 b& A
! ? g9 r/ ?( u% W; K2 b; u
<B>1.对于Windows平台要进行以下设置:</B> 5 s! U8 q+ j4 m) \
! A- K: O1 y' A% _8 u2 g7 _<CCID_NOBR>7 ^3 e1 a" }9 }
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
# c1 z: g. I+ s! D; `0 J
5 {& ]4 o5 C5 q! i0 B<TR>
9 b2 l. \, J4 [3 h! |<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command) A s5 h+ y! ^
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
; c' b" m( ~+ u! r( U' D0 W0 V; `% R! V) M
<B>2.对于Linux平台要编辑/etc/profile文件:</B> 5 n |5 P9 \5 E6 w8 O& K
0 T4 O+ K, w+ W3 L<CCID_NOBR>
2 E9 Y2 g$ V) C' j! O& u& S<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>- t. {9 m9 \" Z" C/ A
& S1 D% L# J5 `" w% f% C0 V% f
<TR>
" {: P, J% S+ ~* S! Y' n<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk' D5 Q9 C' M I b1 ~) M
CLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr
* d$ X% Y: E$ [8 M4 N+ X-e/lib/rt.jar:.% I$ Y1 w: W( V. u; ~
PATH=$PATH JAVA_HOME/bin
. t1 I+ D" r+ c0 D z+ U6 Texport PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE
) C' Z$ W/ u+ \' M/ Y7 KINPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>5 l5 ]( r6 _& F; `# \/ E
0 H& d+ ]0 @$ \. O* |% c& O( x最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
& z5 w: @! l" O! J
8 {; I- d7 X" I* k下面介绍一下JDK的几个重要的命令:
+ S1 l \7 G3 b7 [, Z
$ E3 Q, o$ ~( o [, H# k9 l1 M3 `◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; # P# k; t$ e! t( K: q' u R4 }
: p! |& R" ?6 y1 K◆javac 编译器,由.java文件生成.class文件; 6 j# W, G0 V/ [) t2 Y
2 | S# F4 ?5 D
◆jar Java压缩打包工具; 5 Q; K h! N, d+ e' h
# {* I D" X# {0 L% V/ P
◆Javadoc 文档生成器。
. I" G: v' z6 _5 q& _" G. q4 L, [0 k$ ^) D
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 + K; k9 D z$ K* {) f( F+ I$ G
/ R; i( x$ k. ^7 q
( S8 Z9 U r! U& s- L<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>/ N9 A$ f5 Q1 ~; U1 n4 Z
o* @7 d1 Y: E. X* u0 B现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 ( W5 q/ W' N2 r Y3 U5 X
# Y1 P4 a( [- E7 ]! D- K
<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> ) ~7 I8 D* d+ c5 \5 ~8 f+ C
~# V4 A+ g( R+ l% D* N) x0 a<CCID_NOBR>
% S9 k# L, [* z# ~* `8 B<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
. i8 o- \9 W5 p9 `7 e- N: r6 m& u0 Q& o
<TR>" K( J4 N1 W) m2 P
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java8 D) X7 z' t, G) A
public class Hello{
# H7 Q: Q- o! K5 }) f+ O. _& B- Y public static void main(String []argc){0 C! [. m2 z6 `0 }: X! S) J Q
System.out.println("Hello Word!");' i7 v/ K8 B: F, O% z! |2 {' _
}, {! ~7 _" N: w" A
}</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
5 c4 N5 G3 Q' J: r# @
7 \0 j T" ~$ a% w# T" V% _8 Q<B>2. 编译:</B> . |' Q& f/ t% i+ c
5 L* A% o* `% a+ ~
<CCID_NOBR>
; M1 s5 y" M. O: k<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>) Q& _4 t) L1 x4 C
5 d! L0 `6 z2 ?5 _* t% |' e
<TR> K4 h$ h( g0 ~( G) {) Z0 A0 V( X B
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
( u- D7 \5 e- ^$ _" m3 j' K9 j; t
! ]4 L, y& ?# p: s5 i }<B>3. 执行:</B>
3 v$ {( B& W( h5 o! [+ K/ T$ M) M
) o5 Q. M1 _/ U6 J: f8 `1 F6 e' t<CCID_NOBR>
& x3 T& ~7 {! y+ J<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>; }' ]/ c, M# y! b+ p
: Q8 |$ g8 b# A0 |<TR>1 t) U9 u0 T# ]6 Z# b
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello; }, D h; M6 W
Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
8 A; Y1 W s v) j5 S9 _4 R' |5 I5 O$ m- P0 {1 A. |0 ?
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 ) s! _' k' n7 \2 B0 I
# V/ b& o& _7 W7 m学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
) t1 e- g$ M! V( [/ A8 Q! J- Z8 L2 F* ~ `1 Y
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 7 g) Y. O& Y6 D) R9 d/ i
T. E% A; i; {7 y( t8 ?' G( ?/ y
2 P' i% J- t# A) a& ?<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER># e: B. f l, M# v
2 ?& E. S/ q6 ~如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
, M4 r( ?) |, N! t0 n8 m$ y
2 e8 h8 W2 L8 Z<B>1.Java Web编程</B> 8 G7 ?- S3 b1 w7 K
; {' \" c: X& g( V1 `0 O" f& F对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
& u- E9 Q8 u. N. R% _9 q. A Z" G
# M4 F" B, _) T- z3 |4 O5 s3 @<B>2. J2EE的学习</B>
/ V* G. T. ~7 W6 Q0 Z' x' E) `2 U3 Y/ ]' J4 f$ z% V6 w
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
* F2 w; C- {8 L* w, V* [$ N: s+ \
, i. f2 h$ H8 e7 f' k# M◆ 了解J2EE中的技术术语的含义。 : O1 H1 b6 T6 z/ c
0 B4 n k1 a1 z我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
; v& m2 _& {5 A$ E; i) }7 t
( X. w# ~% E! b. C7 H1 [◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 , | k, _) A& U: n) z4 a F( j
6 F( N$ v; N. y; B( oMVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
/ m/ T/ M% o5 V" p
( A) Z4 O, t) c% Q◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。
! h/ v/ j- ?( y& `' Q3 y: y' h" u$ {+ O7 }+ V. h5 V& F2 }
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
* X% L \& P9 p" X0 U) U8 U' D6 a
: n' H: G& l6 F1 J) B◆ 学习J2EE下的各种技术。 W: @. l+ q/ ?
3 N7 ]. D& b. {: g在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|