- 在线时间
- 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日 - c9 a, ]7 R( _+ R% H% n& p
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
+ k$ j2 k k" d3 P: T0 |9 G# Y# x8 S# B, P$ H/ w
我在学习Java的过程中主要围绕以下几个方面来学习:
- e6 Q! {$ m+ f5 H1 ]7 A g* z: A% r9 I1 G* i! |
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
* o( ]" k9 e3 e8 u" {" T* U* j' w: t w, M* V* w
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 5 C! i6 W7 f5 c/ B K+ C/ o
. Y# E0 Y7 I' C7 }3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
0 G" x( D: L- E9 @3 D
) c) m0 W6 T. X% u% I' T* N& P4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 7 A0 s# X! Z5 {& H" {
) }& A8 }: O I7 n
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
. ~! i; Z4 R9 ^, o, N2 I0 i
1 R- F* w! s+ R& O8 C3 O8 M. Z9 V4 ]6 \+ z j
<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
& A4 e# C$ {. {3 l4 t9 A& h- J2 G8 P, ?
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 9 w5 V5 M" G6 u+ l3 r$ ?
& P0 [5 M) O+ e, E6 G5 P! T) O
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 8 P1 u% g F% Q! J2 l3 d
0 G/ g$ t, |/ d解压安装。然后,进行环境设置。 7 ~; `2 Z( v5 y! }: z7 J3 f
/ ^7 S1 C5 c% C4 ~<B>1.对于Windows平台要进行以下设置:</B> ' i3 g' s' O* H1 H5 O" i% S& j
4 \- z1 h$ x5 U3 f; m/ m
<CCID_NOBR>& q3 R, N* }3 q5 R
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
R& e' u v% @5 i K; B/ w$ b
! N! Q2 s( c5 E3 T2 W: B<TR>% i* Q* L3 U# L) A8 Q/ l
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
, t; x9 H+ A: F. B# Dset classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>4 p5 v) k5 ]0 w& t+ Z4 f
8 h, p6 l! m7 |$ c) {+ q: i
<B>2.对于Linux平台要编辑/etc/profile文件:</B>
, ^/ v1 \; A- r6 W9 v; x
8 B' {1 q% a, F0 H0 n; f<CCID_NOBR>
& N! r, e( |7 x1 V$ m! J0 r<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
6 R& @" u3 x; S l2 V S8 `% R4 m* R) Z/ O
<TR>
5 u F) v! P; i# h4 `7 {<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
1 Q7 z% P: u5 J/ Y4 @$ R' C; cCLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr ( t5 t* ^" H. H* e. | p$ U8 t
-e/lib/rt.jar:.& K, _$ x7 f/ y( t
PATH=$PATH JAVA_HOME/bin+ a) K# \+ w5 \+ g* {2 y* C
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE
# h9 e% d- |/ {4 J" m8 P; UINPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>( W: Y+ H8 D( N5 r" |, _9 W6 Z: k
0 v1 U f4 R. j' |+ Y% w最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 : ~: n' s- E. s2 ^
) p& W, h* L$ E# l
下面介绍一下JDK的几个重要的命令: ( V" x3 ~7 b" p H( m' y! a
s9 L4 o6 L) l/ ?4 [- |3 v! w F' L◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; + r' @$ e5 ~* |2 r# q2 z0 ?0 ~3 [, a7 T" D
% Y/ ?0 y3 ?# F5 t+ B
◆javac 编译器,由.java文件生成.class文件; [! c0 g8 V1 v- K* c# d2 E
) t; U3 q7 Z$ y5 Y4 k
◆jar Java压缩打包工具; 1 R3 u3 E' N1 [( Q0 o$ @& D
: K3 ]4 [6 A1 ?, b$ y; p
◆Javadoc 文档生成器。 5 y3 [- J* X/ m
2 U* V& y% P' U2 H* C2 v! k最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
$ N3 V; z; q( O6 g$ L8 Y) F
; t$ k1 i! [$ f2 F. t& }
/ z2 L/ d( t H+ Y: a<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
: k( w, Q$ V W/ }; y* l! i
3 ~$ O6 T( o( p9 N3 M- m$ h1 E) w现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 $ s$ ?& u* d5 b! W
6 {7 A3 {& r$ e# f; D6 |
<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
7 U# x2 w0 m6 ]
6 t. h0 ^% O! x# J6 m3 T<CCID_NOBR>
4 b7 I) ]+ v, ^! P3 p. `, }) {<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
& x0 q- E+ r* c+ r/ r
/ F% t! z6 t0 X/ Z( ]8 H<TR>
( A+ I# F4 y6 p* o! r X0 h$ H# I<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java1 [5 I; v+ f9 f- N
public class Hello{% l3 ^$ p! e+ }/ ?/ L- D y% x! v
public static void main(String []argc){7 F8 A# R% F5 r6 g9 t3 u
System.out.println("Hello Word!");
) d' K- ]. L4 \& a# {% i! P }% r5 q) H; B g' u
}</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
9 j2 o1 v) ~( E+ u: d9 v2 O; g6 b C8 v; H8 }0 W( e2 s
<B>2. 编译:</B>
! O3 `$ a1 j5 R$ s- ?. M! K9 _0 ^- ?3 b* i
<CCID_NOBR>
9 U# p; y, ?* }6 @1 k8 V<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>& n6 m W" b4 x; K
# V. e% Y8 B* _ t<TR>
x/ \- k7 t' {& t; d7 }" r/ s<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
$ j8 \: |' [: q* y+ z6 i8 s8 y* N8 v1 L
<B>3. 执行:</B>
9 U; ~! c6 x( E2 S# K- a, }7 c% G3 N
<CCID_NOBR>
3 z! @9 {0 \0 R<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>" ^; s: g9 g/ k8 t' m( c' ^
% @, }& h; W8 r1 e0 X' n
<TR>, U( w* ~1 y, [8 ]: ?
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello
+ g( D' F# R/ D2 g1 I d Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
! g9 H% b& L& c% I9 N9 h0 h, d! S6 @! h- _* d' Y+ i! }
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
3 P2 ]! {" c* c- F. T% D; `4 l$ }: J/ {# m$ a# C
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 4 u) g9 n0 y# ?0 L+ ^+ S
/ o4 ?! `1 [3 l
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
# f" |8 \7 g" P4 X: I, S" p
# z5 b+ V% Y/ z! Z0 N
7 c& J. \% b# R; J<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER># H: s: @- s+ Y3 m& ~2 P
9 ^2 B1 I: r% {/ c如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 + [* [. O/ h4 O6 Z& n" K4 s6 h: ~
& D; E0 x% p' R; f8 A' T# v) W<B>1.Java Web编程</B> " o, U& P, w. l' [4 s
9 V+ Y/ l$ F+ H' P: ]' I1 |
对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
4 m2 [' P7 |- R! S) g* Q, }" G9 b2 @
<B>2. J2EE的学习</B>
0 U4 E1 D% N" s# m v& W8 U& h( I n, _8 l( c
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 0 v3 o, E' j8 S1 b1 e: U ?2 k
1 u2 n9 T0 {" ]! \. Q
◆ 了解J2EE中的技术术语的含义。 $ f2 X' u9 p, w9 |( I$ d) ]& s
. b# x% ]) o* u8 g. N
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
1 B* o" u8 U6 G/ p& ^6 _: B+ ]3 N" R X& `
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 ( H+ ^* I( l7 y$ M0 L" d2 D
( l, ?6 h0 s) w O1 z5 e n
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
& Q R3 w g: n+ _
( n2 g- c7 N- n◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。
7 P- o$ E( T' O! I( n/ ~/ M S9 U9 h6 @2 m z4 m
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 5 L: L* h+ O3 M0 d* w; I
$ V' D% _. K9 n+ T7 c5 W; }
◆ 学习J2EE下的各种技术。 0 K2 k# B2 E6 b' L+ C
9 O+ X: i) O- K; {1 r$ P
在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|