- 在线时间
- 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/ F) M- E2 |- L: aJava总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 - J% v! K. g1 e; Q* V
+ ]! ?( m# b; R& U
我在学习Java的过程中主要围绕以下几个方面来学习: 3 @0 R. O' ]; y) Y
5 C, |# \ S% S7 f3 o. h5 `$ o& {% f1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 & e$ \: c& f" J5 {
0 b/ h' C; _3 N7 X2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
9 @; }8 c0 g( d( F) n0 _' z
/ ~8 h! C3 c) o n" [& l! \. j# T3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
# Q! d" ]. \4 m# t8 y9 _% D
+ g- Y8 S. }" ]$ Y, x+ T% U4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 3 G8 j7 W+ F$ A& \/ T; R& G
3 }; z$ A. X/ s' Q% Y学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
5 ]8 B/ p. O8 O% O5 O, g
1 W2 ~- q" f0 u0 x) S1 ]8 ]8 D
<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>7 t ]( K7 e' A7 E4 y
V4 [ |! q7 B' @9 T' q# O
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 9 l! l: K: q4 Q& c! l
5 D. M6 c5 ~& n
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
) G5 X. P+ [; O! |+ C: x6 W I6 f$ X2 x/ b# n5 L
解压安装。然后,进行环境设置。 1 h$ }! D: Y% X4 A
( G2 f, a: ]% D2 r<B>1.对于Windows平台要进行以下设置:</B> ' r7 \! v/ T' \5 C
/ s, N) C* Y- r& I# @, W
<CCID_NOBR>0 Q; m3 U0 I5 L+ j" I% b, |
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
) O" ^3 B3 F. Z4 r; V' {3 d& [8 @
<TR>( B2 l' K5 T: }( r+ T N' g
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command( v4 `# \+ ^% ], Q
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
4 D! G3 r; r% m$ s- ^) ^! W$ I m! L/ T. l
<B>2.对于Linux平台要编辑/etc/profile文件:</B> # r! w1 y( G, o: F, {$ p
" f( q$ h( V+ ]; Y; Q<CCID_NOBR>: E& p1 i9 H$ b6 u- s
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>, g/ y; \0 n7 {+ O6 p/ S
$ C6 N0 y' o0 ]$ Y<TR>0 ^ |% T6 N( K' v! T0 o
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk( ~4 l Q' G9 M
CLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr 3 i/ [8 h/ f# I5 g$ k- o0 K* f3 ^, n
-e/lib/rt.jar:.. ~4 u3 G1 b3 S( ^- N/ w! n
PATH=$PATH JAVA_HOME/bin
) J' l0 g0 Y% A% d. R6 `export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE 6 i( \0 l3 Q% g, n% g& R4 l
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>" k0 \. T8 }9 y
3 `' a" W8 b, G& ?/ t0 i: \最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 5 R( _4 r/ O8 Q, u2 c
5 r/ M1 I+ t4 O: u% z
下面介绍一下JDK的几个重要的命令: L$ v: H" C: m8 ]; v5 c
* j2 _$ Q+ v% U7 V$ s- Z5 {2 }
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; 2 f: E ~0 _! G; @. C: t2 ?# J; }
* l$ {0 \0 B$ p2 U2 m
◆javac 编译器,由.java文件生成.class文件; 2 e8 o% H! Z3 @9 M% Y* K3 `
9 Z3 _8 V; A7 A ~◆jar Java压缩打包工具;
8 ]9 A% B6 k8 e* L; a# I+ Q9 O1 l( n7 ~
◆Javadoc 文档生成器。 0 S: }+ Q0 ]9 r0 q
1 H5 `4 G- I( |7 {0 n0 w; I% p最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 : ~$ ^) z; @/ N; ]7 e b
6 H0 k9 F Z" [6 `: _6 O3 h+ b* V8 l, y" Y' a" Z3 M- q
<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
3 z) Q( l9 T0 [- k/ O
' z5 b4 L) H. g9 i9 B" v# T, q, [现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
0 ?2 e) o: \( B8 R# h; E4 K
$ s: @2 F4 v" K# V, d4 F V! ]+ Z<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
/ D+ B$ D' r' A
* D& ?$ o. _4 w7 q4 F! A<CCID_NOBR>) ]: v& c" A6 m$ F; Q1 x# v
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>! l+ K# D) j! E6 L$ Z, M
8 h6 \4 [2 ~9 g% r8 T<TR>! ` f3 A! Q" d& z6 H6 K1 m8 _
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
. r6 _; z9 u: ]5 {) R! m public class Hello{
' \9 S- S5 k4 r+ A% N public static void main(String []argc){7 f' p9 ~( T9 a1 m
System.out.println("Hello Word!");
& Z* p6 z0 _9 m4 C5 ? }
4 G$ B1 S: E- J% h/ q# y }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR> F7 {, w, K$ w4 i9 A4 L# L
$ D; \5 f9 c8 U2 L4 b% H M<B>2. 编译:</B>
; ^5 Y/ R; ^) v+ i& e" c
" L, i0 P( V L# X/ h2 W$ l<CCID_NOBR>5 ]8 V8 ?1 _% l5 T
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
3 t4 E$ k1 ^# M# D9 N4 f1 s0 D& r+ |! B: |$ f: G% F
<TR>
& ]) G$ w* Q4 x7 [+ G& q* l<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
1 ]9 S1 F8 B! {! Z
# E8 K' K4 c( m; }' P& q<B>3. 执行:</B> + L' j: h. Z" p
9 o; k2 \8 P0 `" `<CCID_NOBR>
; F0 q& v- }- ]; v5 v0 `# K2 C<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>) ~/ [1 i. m' I- H! ?2 k
) U' X. A- B; k( K d0 J2 ?/ E; F( @
<TR>
4 W7 D6 [; e4 E# M% s& ]<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello
5 s, s0 `0 \1 _ Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
& R5 c/ F, V& K* X. D) D
, u% H% [+ y' v' i' E' h6 @% |成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
. T: r+ I- F+ w7 Y0 p- K/ H# H# u' e g
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
7 R% \! Z8 I0 A1 I: T7 z; Q5 d- x, o
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 1 y+ Z' m$ q, d3 a3 u; }, L
0 E- `& ?9 ^6 \' i: }* C# x1 @3 b) d+ g; h! [9 {- k/ J; v# ]/ O
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>* D) s) u% X0 y! u. g& z
4 t y J4 _$ `! C# o如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 5 m. H7 Q: W6 D
- ]- E6 e1 N8 R. k% X2 ~7 G: k<B>1.Java Web编程</B> % |1 g, u' Z# t0 D5 d, x/ ^
5 x! k, [2 b" I5 P7 q对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
1 C& F G1 g' P5 q, Y5 C) D
- Y, r" I X4 d$ Z0 D<B>2. J2EE的学习</B>
; R! m) Z. ]* C6 P) d; d4 u' L3 f, g
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ( X4 \( S* B/ W+ t( b4 o+ d$ S4 e" V
: E3 U7 t$ l$ G0 D3 z4 f, i
◆ 了解J2EE中的技术术语的含义。
) d" }; @) w* l/ b8 D s B5 z3 l; Y9 J/ \- F
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
$ R1 b; [1 Y& C% p8 ~" Q% ~
0 g9 e; Y8 J+ [) [4 s5 z◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 8 Z! [7 W. N) O. E5 q$ @: v
7 `) x+ Y" T( L' V/ ]' X' @MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
7 C: {, N5 l$ c$ I, A6 F
- N. v) ^: W9 S" b9 B9 A◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 4 B+ b4 z) Z3 @4 K5 t
& I2 `" V0 g1 L7 U1 O7 P z/ b
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 4 ]- k9 i9 b) q( }
5 X- X3 C/ K3 u' X◆ 学习J2EE下的各种技术。 ) {- z0 y! a. }7 h. B* h
$ c p, G2 w6 i& o& U# I6 Q" t
在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|