- 在线时间
- 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日
' e. K! Y3 m! f! m2 L1 JJava总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 ) z9 r( n, ~: F
2 O* t+ x, E) L我在学习Java的过程中主要围绕以下几个方面来学习:
1 q; I9 c' Y2 w+ ]" i
8 q) t5 Z( c( e* F) \1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
1 m% w# B$ I/ g l6 Y) A. ]" |1 n5 t+ X' i
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
' q. @, Q$ f/ r1 H- V; W! M
% j$ v n1 p# ~3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 + ^1 N) q3 d8 W7 o4 Y
4 s3 X9 D; ~# E, b4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 % Z) @2 x; m+ b" X1 T
8 M4 Q+ B- f5 u* N) Y) y学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
; j: ?3 D- x4 O6 W( u- {) F, {/ ?, u) a9 F/ t2 v
' u- Q3 i9 U1 a8 O- j3 F. b! }" L
<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
8 w+ ~/ X3 B6 E
5 P! I# A' B; O6 M要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 4 y5 j* G* E2 l0 W* g2 }& G
; e: f6 L' S' k2 F* m9 I2 R可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
4 I+ Y+ i% s. [! A/ C# ^; V$ r: H2 C
解压安装。然后,进行环境设置。
5 |5 r) u: x1 K- |+ l; b7 ~5 E* R5 K9 I+ r; V* j, x7 ^" a3 d ~4 b
<B>1.对于Windows平台要进行以下设置:</B>
, F1 g8 |+ L) U7 I0 A4 q6 x
. N) L6 X% b5 w0 _5 ?. T$ \<CCID_NOBR>
( }# ?2 U6 T( [, F<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
$ n! M9 w/ L+ t- R" `8 M9 H2 {/ l: J, `9 W
<TR>2 u$ H2 ^7 L" o1 r) i+ g1 r
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
1 a9 K4 B- V0 m8 @- p/ v- y' Eset classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>+ d5 b. Q _( [2 m7 @
9 O' A! L6 r- R% D6 u8 m<B>2.对于Linux平台要编辑/etc/profile文件:</B>
4 o, N- v( ^3 x: U. R
# P( x( z$ j! R1 z, m<CCID_NOBR>
9 l: I9 J5 u5 z5 s; Y" p% B<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>2 Z2 D1 b3 S" o7 Q
; p4 @7 S+ Z" [1 ]! ?<TR>
6 C: t, F% T$ K<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
4 [4 Z* V' {3 ]& X6 vCLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr
- E% j, G! v) d! S( _9 y. W4 t-e/lib/rt.jar:.
6 {/ C/ l0 |" h8 w5 GPATH=$PATH JAVA_HOME/bin0 o* |8 @) ]) H7 k
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE
3 x t& a9 p) W5 y' E9 q8 s% ^INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
l, P" i! A- F" I( D7 t |1 v, b! D" {/ n0 F! D
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
5 r3 s0 j0 }" ~
( M' `, L4 d! x7 ^6 ~下面介绍一下JDK的几个重要的命令:
- L! I) r, O+ n1 V* D( p( y
/ m O0 l+ W! Z# Z8 s◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ' a: F# L6 B/ T& e: H4 X
" a! q$ b2 F1 o5 \
◆javac 编译器,由.java文件生成.class文件;
" {: o+ m0 f! [- ?# u$ ~3 |
" q$ ^6 L$ W7 R, C◆jar Java压缩打包工具; 8 V6 {: A0 S3 p
0 v$ k% F. ^- Y$ l- ]) T/ c◆Javadoc 文档生成器。
) Z" o% R5 ?0 T1 y8 M: f/ h; G* v# R1 W4 o: S
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
1 S6 Z; n4 E' d1 S% G
; s+ q0 A I L4 j
; A8 c' x: l# f<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>( a( Z/ [( O, S
4 K8 V" j5 k$ X$ s, F0 R! W现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
) C! A/ r' @% k0 x/ ~0 {$ r& ^2 ~$ k' s- F: c$ ^
<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
; {8 y+ m1 P* A3 K) l6 [
/ r# y4 F s+ e<CCID_NOBR>
; ^3 X/ y' y- ]1 K" k<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>: E; G4 [7 M' U* k: t8 T
9 ]2 Y8 @' u, t& e+ x9 _8 l- ~( a' v" j; Z<TR>
2 o3 h8 o& a, k0 U<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java/ v2 E% X0 F7 H! W+ C, e4 `
public class Hello{
& q' J, D1 K/ ]: ]& x& @3 E public static void main(String []argc){
! ]5 J. p# ^9 o0 ^8 t7 Y6 _ L System.out.println("Hello Word!");6 r& y# \6 [+ F/ J6 q% j' k8 }
}
0 D+ M4 U/ A' Z, U; h }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
! l7 m. Q2 l* U& p: X4 S3 e+ m5 O' O- H4 s/ o
<B>2. 编译:</B>
* P7 Z9 r. V7 J- W, Z! _& I
7 n1 Y1 r6 K( f3 D. k" L* P<CCID_NOBR>
* {8 p. m) x0 v% V8 c6 u) F<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
& G! m+ a0 C2 w- a* |
8 G% v$ ?0 K3 k<TR>. |/ k/ j. d. o( e
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>, Y' l2 m x* W, W# w! t
; z s8 r; Y0 @- Q( X+ p6 Q! A<B>3. 执行:</B>
; Z" x( v6 L! u* X$ V3 I' d+ J' u _- ~5 n7 ^
<CCID_NOBR>- m1 R- _7 w |& X4 K+ B* i
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>7 h2 t$ E# l3 X
+ d f) u, v# p) y0 V+ K<TR>* z' m4 A( Y1 w/ c5 ~3 b4 g
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello7 m4 F% t% ?: F4 {
Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
0 v1 g/ J L' J) e. H* l
% @0 ]. {" i1 v$ G) {1 ^6 A成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
# q, A; \4 t* h' g
4 T% b4 p8 l: u) i学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
- f* {- H0 _* a( N S" `+ |5 }0 f
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 2 z/ H6 F) T, }5 `$ | \, ~3 P6 t
3 s% ~% b8 j- c" T& R5 p _# L" A' _ g) i) R9 n+ R' Z
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>
& {) w1 @% w( f, R% R5 C2 N# F& j2 S
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
9 t) q. Y# }8 y
% Z2 d0 I s9 _<B>1.Java Web编程</B>
5 D- u+ v- C9 C
( T' k" Q) M/ Q% D- f对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 % m9 x/ t: {9 E- ^/ B" F: l
+ E# o P: y4 l$ a' Y! i
<B>2. J2EE的学习</B> 1 J6 c. f1 p7 c
/ u& V: |# j' c! r- _: o" F6 fJ2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ! _7 N! Z: ^ C4 o5 q
4 c8 K5 }7 P% j- G
◆ 了解J2EE中的技术术语的含义。 * ?2 N- t/ m& k) x' c
3 A; f$ R: b; z7 h% f/ ?% ^我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。 Q3 ~% ^' d- w$ K" w5 p
Y" t1 V3 V$ ^9 O( T2 H$ u7 s- L◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
& u5 V( b* f# |4 _# J* l' q# J3 l
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 3 l+ y! s2 r. p0 o! t
0 e" p% ?7 h! ~, n
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。
. V" ~" f7 e/ \- O" W. s4 ^- H7 z. j' S3 P" U
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 - z* M0 ^! Z0 {* F! T4 E
5 K8 l! i' [& C6 ?. p$ @+ S
◆ 学习J2EE下的各种技术。
1 K; C5 t) z9 R' G* a9 ^$ j1 V3 e& a) i0 o
在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|