- 在线时间
- 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日 ; a9 u. @- M4 ?: x* `
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 5 r" F' O8 E; \8 n: \# D
; D4 c! v1 d0 V0 s) e
我在学习Java的过程中主要围绕以下几个方面来学习: + J+ [! m7 D; ]1 i! Y% X& t
; B. V$ U/ o2 ? O% B( m1 ?8 ^1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
* H c) E" f6 A
: S2 s* O6 U+ ^( r2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
& Y" `5 z1 o6 _7 P+ p7 N$ M0 {) }; M. E8 t
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 3 W( d; W8 I8 W* k0 h8 ~2 {- s' R- e
; J9 g, m, m. m3 N4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 ) q% _/ Z) g- J% M! _. x
) [1 x! B5 z& p6 {: ^. G! x学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
; D8 [1 S$ Z+ w" \+ p* ^) v% g
: V2 U8 R% t; I5 w4 O+ c# Z. }: w. S' J
<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>; G& C( \& y5 U1 {9 g
! v9 ]- Q5 Q1 @$ _6 U/ h
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。
7 w: A8 Y! T1 u) P- }
N, [% N: [) u; Z) c) r可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 0 g1 X1 S& v+ x
3 i8 i! ^2 P: [% E
解压安装。然后,进行环境设置。
" c0 N1 s( ~. o' y( O3 S
7 `- c1 {& C8 x5 }5 C( l<B>1.对于Windows平台要进行以下设置:</B> & V2 O* n8 f1 ~& c' Q, K! w2 X* E
1 R$ b; y# o1 p5 n5 X" ]5 n; T3 b<CCID_NOBR>
7 z4 b( @, p+ ~5 j9 ^3 S" y* W<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
e" b* @5 b0 X
1 E& m7 p7 I/ X0 Z. T6 M<TR>
_/ v {* @1 w. X( W$ e<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
/ ]! ?6 S2 [0 A! P3 Q3 E% cset classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>! K, m7 L \0 d- m
' i' C" h0 t0 Y% g A
<B>2.对于Linux平台要编辑/etc/profile文件:</B> 4 M/ P5 f" I; }2 F
$ G( E3 j- W8 @' V6 p- D9 h! i- k
<CCID_NOBR>& d/ S4 v0 m+ q/ i9 i
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
9 _+ @ A% c1 x/ f: W. A. Y O3 s
<TR>
, ] V- @9 ]& i5 r& t<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk: r9 a1 R a# f. |" K! `( K, h4 p
CLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr ' p5 Q7 t' E7 H, I3 b5 R4 [$ Y
-e/lib/rt.jar:.. e% ^5 n9 G8 M% P
PATH=$PATH JAVA_HOME/bin
" P! _; Q! q& r* x9 ~export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE
- m) g2 o0 ~4 Z! p& C+ @INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
/ y9 @- Z* Z* O& C* }6 i4 W9 |; O6 A( v2 d R- z
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 ' j+ Z/ y" p3 M( l; F3 |
& b* A! A; Q: i# |/ v下面介绍一下JDK的几个重要的命令:
) H1 v6 ^% T" F) ?% ^# O4 {8 \2 E k& B% C! @; O+ _
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令;
( x* z( \' R" c3 S- R% W* e5 c9 e# J% r- B% {
◆javac 编译器,由.java文件生成.class文件; - u* F. F9 F( ^& c) Y0 d' O
Z2 G* |, Q7 D8 h- Z◆jar Java压缩打包工具; / J: ~7 ~5 R. X) k
/ E9 R5 d. B# }: q& N
◆Javadoc 文档生成器。 * E$ v2 n. I* l- [4 e" q" Y M
, Q( i) o& y; g, `- b U& b" C1 U
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 ( T6 H; \' W; o) X" {+ k
0 X- i- G H4 }+ l$ W; Z% W! x! j1 }, m: c
<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
( h& w) }% D/ V1 Q" U/ X
6 m' B- @2 m9 L6 ^6 j. ]4 a, {# X现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 ; V G9 s; W4 {9 n! b0 Y( b+ R
2 `4 X2 T/ L3 M* c<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
; @- p0 \5 l) r6 W2 s/ f$ [
/ E4 |! m0 a e- R! y<CCID_NOBR>
3 X/ _ k4 l4 E& Q<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>3 y9 t! a2 R& c/ c, q) N
7 I* R8 d e9 D, F L<TR>, u1 L) T( h& p t, t/ t1 F. ~
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java; H2 u8 f! F2 D/ w" V2 p. X8 u
public class Hello{5 Z4 k) a3 P5 B" M: c Z' j$ v
public static void main(String []argc){
2 a! U3 F; c; R$ }2 I System.out.println("Hello Word!");0 c- g9 Y( m5 o4 ^ ?
}
, e+ g0 y1 e' e# C! F2 C }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
+ ]( a* K( V( J! f b1 D ]
9 O0 N: N: K# r* |" G% J<B>2. 编译:</B> 8 D8 c' f+ q/ |- I% y% q
: g3 }# l. e9 c0 u' P7 v+ O<CCID_NOBR>
) F# Q7 r9 V9 i+ k5 \8 l% i<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>- E4 J( Z9 b% O( C& T4 T
" m2 K+ u0 ~: Z n" a1 O<TR>
* q0 m0 } G: Z6 J<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
5 P" u6 _% y$ A' R
# A; H& `' Z; Y6 q w. }9 s" l, p<B>3. 执行:</B> B" G* u; Q; `
7 M& L' E2 ^- c% j. l' s
<CCID_NOBR>
8 Q1 W9 [8 G8 n3 P4 L! O<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
0 k2 ~5 u3 T1 U7 r7 T% |) y; f8 f0 A" ?
<TR>& @. }7 Y* |! O9 Q
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello1 }, E/ Y1 F2 d7 _% U
Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
% F; k) s1 {4 t+ E: y. Y: s: H/ i {9 o) y, \
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 7 H/ ?! X9 [) b, P4 k
7 ~+ ^6 V! H2 w( v; K) J% w8 H学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 % U% S% n/ v) J' [0 }
! P# C2 s5 C1 B7 G: A! S* I在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 & S3 `, e. n J4 w. U
7 I/ M G0 ]. ]
7 N3 h9 ]' R3 } i5 Y( Z! C9 M! f
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>* C ^3 W/ K3 S) B; u4 t2 B
( x: @' n% I$ L! ^
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
' z- O5 m0 r7 g, f; g9 v$ A, Y
( ]6 k7 U6 {7 J6 M; t* v<B>1.Java Web编程</B>
7 `5 ^7 v( i- ^$ D) N
! O% `; O+ G% y/ B9 i4 b; M2 j对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 6 q; {1 z: Y9 H5 p- J3 W7 H/ Q- e- J
( o9 v# @5 a0 H. ?2 x<B>2. J2EE的学习</B> 5 ^! C$ b' c8 |+ O7 e ]& Z
+ m, z# k2 g. }5 oJ2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
9 ^$ i2 {, G0 }/ l3 B+ w
8 O3 \* X* I- q: q◆ 了解J2EE中的技术术语的含义。
- Z) Y$ z5 a; I! Y: X! `
$ G2 X- A( t v$ c我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
0 m' S) b! K5 h4 H6 T9 ^" {' M- U# l( D* P2 f
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 r# S) \8 Q' d$ ~5 k
/ S7 r. H+ X' H0 A4 l& l% AMVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 * r+ B4 u+ B7 \1 k9 y: Z
0 `; h/ `- W d+ x# R. v
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 ! I$ r1 _; { o) y6 u/ y- L
/ G. j" Y6 b+ E2 B; o5 `* c平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
" _- [% v0 k& Y% e% ~$ e3 w% K X0 s2 j0 R+ W0 j% X" Q
◆ 学习J2EE下的各种技术。 6 y3 ]( s: I- x0 ]0 J' ?8 b, Z
8 B6 G) s+ W9 m i) f在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|