- 在线时间
- 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日 / M, m& V2 p8 Y7 [8 \( q- [8 e( \- ?
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
+ j: |6 @+ z7 T8 G+ v. q/ U0 c/ @' ^2 n2 \
我在学习Java的过程中主要围绕以下几个方面来学习:
( l2 j) L1 G2 x# \, D2 r. d* I* W, {5 ?$ B
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 $ W; l: I- |) z
( c$ z* r( @: W1 B
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 2 y0 b1 ~$ |/ E/ y# G
4 k8 R Z$ f/ U8 }$ q3 I
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
( g# [' B9 j& I8 w9 k% R6 e* r# T |$ I
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 1 q9 h/ l8 R) `1 i5 G' N
; T8 I$ m# \! [7 K* l# l$ g学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 9 o) o3 E" v9 Y" s$ {
3 c6 t i0 G4 v, p; x- U O
& ]0 e8 ^/ q7 E }
<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>& P) {# Q m/ J: E7 `' [& _! M( C. `
: h! m: i. K; Y
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。
0 x$ D Z6 o+ e7 X3 q, [) r& g
5 y& O6 {5 C: m4 Y* k5 g+ C可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 / K4 s1 F j0 ~5 k2 g- N5 o' U. U
8 X; Z# S X" `7 j! \& J解压安装。然后,进行环境设置。
3 L4 \- Z# W% p: R1 V/ Z6 Y# v9 A; Q5 Y( p
<B>1.对于Windows平台要进行以下设置:</B> ; a$ D$ x$ T$ V; A
1 p$ l% m' @( T& X5 l' R- H# F
<CCID_NOBR>
( G! q% P/ B& O: r9 J4 e<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>/ Y# p" \5 S9 T4 _( u
' [2 J- Z$ _* Z<TR>
) a8 i8 \. r3 @, m5 t" v<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
, z4 [4 f3 y( \9 N/ Eset classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>* N" p1 s: N, ]3 n5 W) g2 z& Y
- ]7 `4 w. {; m7 P" Y- ?<B>2.对于Linux平台要编辑/etc/profile文件:</B>
. O( t: n# ^2 N
0 c3 x3 _# H8 ~" M) R<CCID_NOBR>
: K" s. d/ O6 W, q8 M$ p<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
s; k% A, F5 g& q+ I
' \. Q: X% g$ |# r0 [; Z. z<TR>1 \, D% g% q% N% z8 @
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
* v- t. R' U! JCLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr , U2 [* S: J' g- V
-e/lib/rt.jar:.
0 n; i6 r; B; V8 j1 MPATH=$PATH JAVA_HOME/bin
- G8 n9 N, C* nexport PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE . A( }0 x0 a8 Z6 g x) d. Y" o9 X
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
, T" |: r9 G8 O# L( A
2 w) n% O. B) b( T! k( {( s最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 # j( [ V' P8 W! _4 N: X) ]
% P1 Z6 c2 c$ c0 m& b下面介绍一下JDK的几个重要的命令:
% W. Z( B- G K/ A1 F& Y% J1 L4 U1 m# ^; w9 A& E
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; & R! l& y5 g! M8 d
* W/ C! N5 `) i6 }+ Q
◆javac 编译器,由.java文件生成.class文件; 0 k- d0 T2 d p9 @) t
" y- Q1 ?6 I" L" M* @8 _$ h◆jar Java压缩打包工具;
# _. { f( u k: o6 ^8 d( U0 q# k- M) E& c. B' v
◆Javadoc 文档生成器。 0 a% e! G! N1 i5 {2 j
8 ?; R) M! v9 ~& U# S% f; n, M最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
# |. S0 d& p, _9 j: B" p1 p( ?0 x. l q" I# [
) C+ d- M6 M5 s8 S' T X2 M
<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>7 E; c$ E s8 ` g) X
; J3 d" x% D9 C# r: h. X现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
" Y' c8 V0 W$ y# O% b: x. F! e. F$ I
$ o. h) a- K0 `! ]<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> 6 F# _ u7 s' o# S# g7 G" p7 T
0 x- T, J c! O2 T0 h
<CCID_NOBR>
( p& Q' c5 R( |( n<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
1 v6 s z; _) y- n/ n0 B) Z% e, m/ _
<TR>
2 Q8 \* c* }- I6 c# [3 j<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
1 n3 J- o' n9 m; R: V public class Hello{# q. b3 I# d! J- a
public static void main(String []argc){: t+ U1 f5 A: k: }, u
System.out.println("Hello Word!");7 F$ P, d* a6 o% I4 D' O8 S
}- D/ M8 ?4 K; r. q3 W7 l3 Q
}</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
% w6 O! }7 P( i& J' i& N0 q: F! Z0 B8 o! r( k. j5 K7 e
<B>2. 编译:</B>
/ q9 V0 W9 J2 Z+ y
; K8 X6 S( |9 C& k; a<CCID_NOBR>
3 V0 ^0 j" F) P; l+ ?" z1 S9 a<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>6 x1 Z. [1 r$ A% G+ ]2 x G# f
/ n$ r9 O" ^9 N4 g3 F8 \4 z1 H
<TR>2 s0 B& V# R9 e8 D
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>2 N% y* b4 z! ^- G
9 K# @' i2 N, g3 `
<B>3. 执行:</B> 7 n, |' x: G2 V* k& D1 J- p/ J* {
" z& G) h4 t2 R4 ^; s# U3 M/ o
<CCID_NOBR>
8 Z, m J; \* t5 c4 x' g<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
/ m# l" O7 o. Z6 S. R' y: ?+ t
* O# _& h9 q% R$ T9 A, o$ [/ q<TR>/ w; w7 Z+ K% d$ V0 T" l% d
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello4 `& I7 J0 d% R* B6 g, H. W
Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
7 d- |" L% @# J7 U- I
% {1 n7 G$ R* v9 l8 f0 E$ f& o成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 ' q+ W( n) O c4 x5 t' F( m
( I; Z) Q$ j% Z* l学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
1 g9 A3 M; H, A1 ]9 @
$ Y, R3 a f W- ~! _) k* a8 f在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
$ E6 S7 k4 n0 U" y, M
1 t9 L" E# s0 i+ w- b; @' T; X$ t4 f' T8 F/ Q4 p9 @
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>4 t3 `* x* y# P
9 I" U+ t' u; Q) M如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
" o1 X) s' K- E" F( Q8 j' R+ I* y* T+ M3 I: {& r) J! Y. ]
<B>1.Java Web编程</B>
6 C4 Q; n& E* N6 }) ^! l- M$ m
6 v T7 B. F2 j# E0 ^; O$ j对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
! R3 [3 f0 ~0 V: B# k0 d \: S7 @! i, ], N7 B. I1 R
<B>2. J2EE的学习</B> 0 i; u2 o. l. c& B! [
3 u* S0 m1 d; c7 c
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ) k% R `9 |' E: V7 y% L+ v
3 h# r! ~& R5 V; y, v& P2 c2 W6 a) T◆ 了解J2EE中的技术术语的含义。 6 C0 @; D& Z0 O6 f5 o. F
* b5 k& M7 |" I: P& S; f) ]- K我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
, _+ _" g& l' X6 t7 d4 ~
. D% _/ A# I. K6 e' m8 j$ a◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 1 S- [ v, m) l. R, k* l7 h
/ ^! l+ U4 a/ g' D4 D
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 7 h T0 T# l7 w. p2 N$ c
% x: r ^3 G/ u( n3 ~ v) R
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。
( w: e' g2 P4 Z" e( T+ k. y5 O1 |5 Z5 U1 I1 }- h3 q% E( ^
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
5 [8 P1 X- F% o) M) \% p8 h4 i) H3 T: u+ G' I) z+ W6 @
◆ 学习J2EE下的各种技术。 , h. q3 C ~- d/ L- p& q/ E
" N" H9 k5 g% J0 ~
在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|