- 在线时间
- 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日 8 f9 ` x( q G' n: t* Z! V
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 . Y3 Z/ @5 j% Y: f0 e0 p% Y+ C+ F
7 F: _/ B" _" _$ z2 b
我在学习Java的过程中主要围绕以下几个方面来学习:
* O" q- u1 f2 O8 P( N" ^$ {+ i/ U
9 q# D& E, f: X7 x1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 7 b- B8 N& } ^$ p$ e: F8 i# }
2 f7 r* ~+ g; r. {" \% ?& s$ Z8 b
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 ' z, ]9 _ F* g: J* _- Q
2 H' E% N' F3 M& u. v. y3 m
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 : ` {. k4 J7 z4 y' f) z; t j
# D2 w2 X# h; |. w/ v* A
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 * S7 K7 C5 x3 Z2 F) A
! k6 x( V( C+ s2 X+ p( U: g7 Y" F
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 . F3 ^. K; l# J/ v. m; O" h
, v) {, k. S) f
$ U! R1 s: z( y8 e<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
1 v# g" n! g2 J# Z8 ~" E8 \! g0 m ^9 z4 N6 r. N
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 C! e4 ?4 Q; L0 \
2 L# Z' S9 Y4 P* \& D1 b
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
/ M6 f1 ]1 }1 A" B I4 H3 Y! X2 M% ^1 L/ v
解压安装。然后,进行环境设置。
9 U- Y- ?. B5 g! j: v: |) m! K
# Q) C" e+ q8 f' V<B>1.对于Windows平台要进行以下设置:</B>
; k4 x7 O! Z: Z+ K; k" Y4 ^/ }8 T/ I& z) r( X% ^
<CCID_NOBR>
! D2 T0 d' I4 Z7 h/ M: d<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
8 L z5 f; ^& G3 k
) F2 P" F6 {, k e<TR>
0 v; @ H0 i0 I. M9 \& R<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
) N% Y& w' R( ]" r6 v9 dset classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
" A& \ y1 ~ B4 V F: |$ s3 O* b2 H
<B>2.对于Linux平台要编辑/etc/profile文件:</B>
* C) S8 p0 R; W: t" m3 f9 V6 M% S- g1 |6 s5 L+ o" q% r
<CCID_NOBR>, r& r- J, K1 |* w
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
; u" }- c3 |9 o% | {$ s& ]% \
8 T) ]1 \8 l3 r' Z<TR>) H W# }( o3 C8 d
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
. g a: \; f/ m* @. u' r' @# uCLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr + p3 c8 Q5 V3 d) z& ?5 Y& m
-e/lib/rt.jar:./ x3 K" A& c( @: G
PATH=$PATH JAVA_HOME/bin- R9 m" L5 q0 S, `8 C3 W' K
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE ( ~/ @5 h$ X" ~/ C
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
* g3 m! d! ]6 w( E& g8 C5 C/ z; L) _5 {, p) B" b }: c
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
2 N0 p) H; D% r. a
# D6 p/ k" Z$ K/ n3 L1 p下面介绍一下JDK的几个重要的命令:
" N9 X% s$ B: U/ w. x! y4 s- T; ^) W
S1 ^9 I2 y0 F$ R3 T$ ^- E◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令;
~3 N2 H l0 y, U' @% v; p" d. c+ _$ R6 C# W. G
◆javac 编译器,由.java文件生成.class文件;
4 }) _% H; g/ J6 O$ p/ L
% B) m8 `2 l" h7 W◆jar Java压缩打包工具; 1 D. v6 c% {9 d. _, P3 c
B( T1 h5 E$ V; T6 ]+ n
◆Javadoc 文档生成器。
A! h) _6 ~2 `. Z8 V# n0 V; c
G9 B- T/ b- N! y6 O s( t5 s最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
) V! S9 W! s7 g, {" J2 C2 D. U! L
$ q- ~% F1 P, h6 ^<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>3 e! ]. K& |' r1 y3 f8 I7 y
0 \$ Q0 k5 d* |8 p9 a" T3 U2 Y
现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 % Y: W! U# K' F- z7 e
# W2 }2 s) r8 q; B& Y& A<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
3 Q9 D$ n6 p: e7 ~" p) ~% ^2 X2 _3 v+ `
<CCID_NOBR>6 p. D% t6 y) a+ g+ V
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
4 e7 T5 W; Y- k$ S& Q
! S% k5 Z6 e" j+ V6 I<TR>) N! e+ t* d1 B: K2 X+ ~3 m8 G. X
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
, Y" c; g) Q- W public class Hello{. Q8 _3 t( P: F
public static void main(String []argc){
* K1 A" B9 B' {! Q( v System.out.println("Hello Word!");- x. r, w4 R% R% A
}, Y+ s' n" v) z6 ?2 i
}</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
4 j4 f$ I+ q$ {: w) \, A) G W/ }7 Q7 E
<B>2. 编译:</B> : L7 c' |: m3 L# r+ l
; b- l4 A% g B) `; Z. V E0 |
<CCID_NOBR>
: w, }9 z4 I3 ^ N" p8 F5 S<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>9 X) e! M5 O4 @4 X3 U
0 R; e% k& a- [8 { J) m p% S4 F0 R' E<TR>
+ ` t6 g4 w( w+ B0 Z- \<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>3 o" O* c* Q* I# _- X
: x. f; K+ `! r1 v7 N# A/ L<B>3. 执行:</B>
1 }& t8 U* p4 d% d" q- N& z$ K+ T
<CCID_NOBR>& N$ S6 \6 a( G% r/ o1 R9 N+ K5 _
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
/ v& ?& F- v2 H2 M
( e% L9 s& ]$ \8 Y<TR>/ b! ~5 L0 F$ `( c
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello: a" K+ ~& w: w
Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>& ]! m$ J! @; y& y* u! l
' @* j7 N- C7 p( L! M
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
7 T0 v- J, ?$ x. |' t6 \0 \0 L9 r; Z+ U8 P
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 6 O+ s0 }* [% P+ Y6 P
( U+ [5 m" m6 i0 W; R; V在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
* O+ c6 K' C7 k7 k
' E# n7 s7 j4 {4 \
+ |7 O+ ?0 ?( M4 ^* _- x3 a; U<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>; o( t/ C) j& b) X
( B1 `; G( T1 {4 H( W0 |如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 $ K8 ~5 z+ P( z( Q: k0 ?& V
) _+ j" q5 `) ^+ W
<B>1.Java Web编程</B>
4 K: e( F' @% K' s" j" t* G x1 ~8 ^7 f; y
对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
: h; Z, w4 X4 H1 N: ?7 T p+ x, m" l/ I8 w1 J$ x; ?! P
<B>2. J2EE的学习</B> : M% O" D: W6 V( G. _3 ?
0 e4 D* I4 m5 ]% h; wJ2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 : I9 U1 S: s0 b6 `% y+ S" P/ J3 X& X
9 V a) t3 d, Z◆ 了解J2EE中的技术术语的含义。 0 W/ Q) t$ s. b& H1 e# A1 U2 }! h
7 ]8 }( e# x7 w0 T6 F$ u) Y6 ?我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。 1 k6 B9 D+ q! w& [
6 ~( y0 I+ X* B3 t
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
+ B: ]- P9 j3 c3 u- m: Q6 T$ Q p
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 : H' G, s* X5 Z% K2 ^9 C0 U) [
2 y4 n5 E; b# f9 o7 x◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 ( ]- o% n# `" q ]9 _6 m9 o+ x
& d, Y7 T c0 _' M+ H( @平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
% Q$ K! y6 h% T2 K8 }$ G0 J- ?$ z& {( }
◆ 学习J2EE下的各种技术。
7 H9 n' x" ~3 T, x4 l+ p+ [* T$ G
( y+ E4 [! B9 r4 L7 j2 k在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|