- 在线时间
- 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日
/ |. a) ?8 \4 y- ^! ?" N: TJava总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
: l6 i2 A8 o$ W, B* [' m1 Q, t. `5 G1 N
我在学习Java的过程中主要围绕以下几个方面来学习:
# G) @9 N& U1 `. H; `) X; n# n% z& j9 S& i+ V9 H( U U/ q
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
$ h/ v! y# [* B6 }. K4 u+ @2 V) a: E& c/ }2 Q0 w. D
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
, e. w: y; j6 ^+ U: C, R; \2 x
& h, Q& ]/ Q) b7 g( B0 l* {, R3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
1 x, H2 R4 I) C; m* P- B; }2 z, I
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 / B5 D. Y( x: Z5 m- d
/ i* k5 F& Q2 B# ^1 _# e/ t学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
k' r3 `6 f( U3 ?# b& r4 c7 J+ g
+ U! {! [& X$ |( I* A3 _) Q
<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
1 X8 w7 j" L& S2 [7 q
, w' C' _. v: B% `) F要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。
% E' l! O" O) d" p: p+ Z- x/ V1 W# S" o+ O- x# N
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
$ L; H2 n, J# ^
; D7 S: ?8 O2 f: X3 S, ]- {解压安装。然后,进行环境设置。 W$ C. {9 ]& W* n* W3 o4 I
4 B9 G: {) G( `; h* i* e" I8 p
<B>1.对于Windows平台要进行以下设置:</B>
* X% O$ L$ a3 H$ }: y( q7 j4 s* A4 `& r, s* _# {4 C+ F3 i3 n
<CCID_NOBR>
) C# C9 U: l8 R/ z: E! L<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>5 P. K, m6 [; Q4 A3 w0 M, E7 w
$ `6 q/ u% j1 f& l/ ?5 w0 b
<TR>
3 e' v* J$ `1 M2 ?. d( k, A<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
1 C! u t8 R, I. d x' Bset classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
1 W# N1 Q5 k# k- ~! q: v3 S3 }/ G- n. U
<B>2.对于Linux平台要编辑/etc/profile文件:</B>
( C* E1 h, v1 q, a% {7 g( y8 o
& G4 P& `' q4 W( I c<CCID_NOBR>
$ a7 x( K6 ~, y<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>6 ]& _9 c3 M, c2 T0 f
' j I: z) r" |9 w5 K9 y1 p6 q& O<TR>6 k' C: c( ?! I6 F) M# s( E3 u
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk: ~( [3 l* m; L# k
CLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr
) g- v# L3 {7 C8 {-e/lib/rt.jar:.
, A3 U5 j6 }- z ?& m) sPATH=$PATH JAVA_HOME/bin( s2 J4 h( h' J) m3 u
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE ; h# c1 T0 X/ g; H
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR># x6 t0 p ^+ p' x' d% z+ q2 H
: ], I7 A; @0 ?0 g6 I3 t. t! Z
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
& j, y7 A8 L9 j7 o$ h7 ]
, J6 f; ~% T1 t4 Q s下面介绍一下JDK的几个重要的命令: 8 Y1 }9 u$ z! K
; K+ V0 H$ R/ x7 k
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; : v2 H2 ^* s0 X: d1 C
9 S5 \( Q# ?! ^& l/ O9 s) I
◆javac 编译器,由.java文件生成.class文件;
7 G, y) s4 O* O" O7 S7 L
|, S- C0 v. U( y7 `6 A! y◆jar Java压缩打包工具;
) i0 d2 T* D& K) c. q( _. ~$ E, }' M/ S! H
◆Javadoc 文档生成器。
{2 } S M) a5 Q i
! {" z' q; s4 v6 K9 N @最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 - z; I( ]0 p" ]/ G( S+ S2 Q' ^- }8 x
9 S) b: e! ]( h e
- c# {- q5 b) g, p0 r" a2 d, o' I<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>8 k1 ?) Y$ w6 A$ _& Q6 F' V0 A1 U
! q3 Y0 T) D1 ^% L
现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
) t7 i4 f# O8 {# {8 P; r% v$ \2 U5 I5 O* p% x
<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
2 @4 c) p; r. ?! t/ ]2 I p2 F% i5 C0 |) ?
<CCID_NOBR>
o* v+ U9 I; `) }- z<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>% m7 b: q" Y% D1 I( j- y5 i/ T: B
2 M1 D$ i8 s/ b$ N, `5 R' ^8 X4 K
<TR>: }0 C5 R; `# t/ w
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
' Y" F6 U- I! W3 a3 C u public class Hello{
5 R8 r2 M* N" R6 t' k% i; p; y public static void main(String []argc){
) a _! m! ~; t, M& u! i8 h System.out.println("Hello Word!");" `7 }) r. z E ]' j g2 n5 n
}
; i6 i+ f1 f, G( C }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>6 | \/ q/ C. P5 j" T
- f6 d1 ?9 s( ~<B>2. 编译:</B>
% i4 B. ~9 \& R5 c2 \/ |. u2 j' x8 r0 u
<CCID_NOBR>
: q! ]) z( M* ]5 H' g& ~7 }<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
+ ]2 |) Z0 `" |4 k e6 V+ ^4 q( c% P. Q. R! Y7 F; h) `
<TR>: R/ ~) q" w$ W. Y: \/ w# C
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
3 t; X/ u2 ` f4 R
; B& _- [: E8 t1 Y<B>3. 执行:</B> 8 `# ^! b- K7 w
. D @$ O- K4 E N; X! a<CCID_NOBR>
% l' z3 k7 m5 _4 A<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>( P& h8 m( Q9 h3 A
8 J1 }, @0 ?3 O. a8 t7 e<TR>) B3 ?# V# Z/ J: Z: e% M
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello
2 e, a$ L$ J$ Q% ~9 g) r! G Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
+ T# \: c' Z' @3 ^$ G% {" H* h# }/ E1 a. `
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
& o! F& |/ Q; z* B+ X h, H$ b3 ]/ f
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
2 O4 M$ c6 E/ s8 j9 w$ ^, }! d- J% e% F
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
: b v3 @, [0 N8 `5 W0 [
0 G: K0 Q3 j) Y- }0 r3 J. Y3 t& w3 A# D
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>
, ]% |5 F1 o. l$ ?' T* B$ Y
( v" [9 c- C% A- g. o+ W: f* o5 ~8 K如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 ) y! v4 a# g2 e! a
5 j. b' o2 }$ [: [4 j
<B>1.Java Web编程</B> ! X- [+ U; f4 Z& A3 ]3 d
, i, ?% T/ Q! g7 o+ f对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 ! k) l1 p, k) ^
* s! k/ X) L% n; d<B>2. J2EE的学习</B> ( v. B5 p, g# f2 N3 y: M
' H/ z- F* f. O3 {. t, S* t
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 2 u) h% d9 I; f `# v
# J4 ]; B. p: ]& n" J% j◆ 了解J2EE中的技术术语的含义。
+ j9 z! c7 F8 e7 q) I, u9 D/ R5 O0 x6 A/ ]$ o. G1 R. r
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
7 } H. B6 }5 R, p, [6 Q: i* \7 \% l5 _* \; q! `
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
% f3 ~' l# z1 |. |
! D9 i. z* s* ~MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ( Y/ Y' q+ C3 n( [# T j
7 T K/ B7 ?- H: a3 A
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 & Z& ?$ ?/ f l+ l9 E8 z
( ^9 t+ {1 N4 u
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 - p: Y- n3 I1 L }: {
! ^8 c. n9 O8 H
◆ 学习J2EE下的各种技术。
" A8 F/ k5 e1 u3 ]$ E
) x' U' P$ {! f$ C+ U3 g7 @在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|