- 在线时间
- 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日 * y- u6 b" O2 L
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 ) s4 @6 P2 b# S. g% f, S
% |5 f7 v2 O" P9 `/ @
我在学习Java的过程中主要围绕以下几个方面来学习: . r( z2 r; I r1 O8 e
7 D) G. U" M( W& s7 p" l5 _1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
1 ^' `* d$ y( c( H) j
( v1 [5 S/ ?2 D0 {" M x8 F2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
- X5 i) |3 t$ V' ]. ~6 |& u5 P) ]0 t" \3 K6 | z
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 " v! v+ E5 v \* S" d
Y! s- I- Q; d5 T+ U! j1 }
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。
T, O5 @" c, p! l6 E+ s9 S
2 {5 K8 A, }# `# ~1 ?) H7 u( y学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
# R1 j) S# O7 H& G3 w
" {; o% z; D4 ~- G& ^- m
8 A2 J4 Y/ {0 U. N8 @9 G% D<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER> a* l }% e* t
! Q3 l: O" Z9 p* ~ S8 \要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 3 E3 g# p/ ^. A3 `! T( ?
& X% B. ^6 c5 q L8 f9 Q. l, }2 |
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
3 I; l- y$ Y# x1 H" ^ p1 d( P& X+ v7 c- W7 R5 Z: o
解压安装。然后,进行环境设置。
2 _: M8 ?, I( b. Y5 l
' p0 C1 n3 C* f h. L<B>1.对于Windows平台要进行以下设置:</B>
$ S* e: R( a4 {. Z5 T& F8 ~ A1 T1 D
! {8 y, j1 | }+ v5 y. A8 f0 j% w<CCID_NOBR>
+ G3 d- C1 z+ e2 x1 i& `; S<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
4 P: Q' a- U, r, [- t/ _: w/ e/ c9 i8 \% @2 z1 T+ B
<TR>
' Q/ ? b- |. o4 Q<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
: P/ \0 K! N0 i; K$ Xset classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>: X: V+ C$ W W# w+ ~# I9 \/ {
, E5 J/ y$ p) ~4 q/ ^' ]' _" ]
<B>2.对于Linux平台要编辑/etc/profile文件:</B> , v/ G- h; p; T
; S. L: B9 D) R8 t
<CCID_NOBR>
7 T$ h- {+ w* |# V! c9 ]<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
# [ N: I4 O4 J# y0 `/ @8 g' Z* _3 V5 F1 v/ E9 q3 I
<TR>( ~+ R% _% ~8 [7 R( T7 _" q
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk4 U6 |2 x* i, T! D$ H9 |
CLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr
4 O9 Q" u% S3 V- D/ I, B4 Z. N1 J-e/lib/rt.jar:.
- l# P# |7 M' T* OPATH=$PATH JAVA_HOME/bin: E8 _/ P6 D( E) y& T4 V5 Q
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE ; E% ]/ x) Z6 ]5 e) k5 G) e3 m4 d
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>: |# h8 o, S& \ P" A* ~8 S' C
/ v! E5 g/ \. h" ]8 ]' b2 T/ f最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 % K/ ~2 ^/ U4 B8 l- D; [# O
1 M+ n# ^, z* p/ }下面介绍一下JDK的几个重要的命令: # y. U! d7 b j1 Y9 |# s$ p
! T$ _# C# @: G' c0 _, H' d6 `/ g. ]
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令;
- W) Z6 t2 _( c) w9 a, m7 ?% e+ U! R9 l8 Z
◆javac 编译器,由.java文件生成.class文件; 9 {" J- P7 y8 h* Q% C% H
( C. p5 j# P! x/ h; a5 v◆jar Java压缩打包工具;
$ P- h3 _# N0 l0 @1 ^5 }; S2 ~; f7 g! b4 Z
◆Javadoc 文档生成器。
0 \ j4 n M; N$ b3 v9 O; k" v6 v+ N0 b" z5 ]; t7 o
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
0 P \9 t- U- |
5 i% ^7 @; S% I0 y! _1 |0 D3 {% B. L+ t- f* ?/ ~
<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
# W8 K7 f* u- [* Y+ M! N& a0 m0 z! ?% j
现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
: x5 P5 w5 i3 Y' b% Q
1 ?" i% p7 F+ N<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> 8 r2 A2 s- n. O
+ N3 } ?. A, P! b+ V4 K) y: z
<CCID_NOBR>+ {; X6 R% z; }5 @
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
" Z: |" k! S; V2 U# h8 P0 ^
5 d+ b) X: h* a: w0 U( Z<TR>
" q% h& [' l7 j- G7 q<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
; i( q( }. a/ M3 `3 J public class Hello{ Q; u5 K+ u4 {) n& o# g
public static void main(String []argc){
: s7 N0 }1 e& S1 k" K; G7 X- ?; _8 p System.out.println("Hello Word!");/ k9 O# ]; F2 h. C
}) f; E0 L7 ]4 V; D! g7 d
}</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
4 l8 k/ p) P1 r2 P B% n+ l) r: y5 C+ q6 ?2 x
<B>2. 编译:</B> ) Q3 N) n. k& \5 x% G2 }
2 R: V2 J) f7 R) h. X6 O
<CCID_NOBR>- ~" L: ?2 K9 v1 D( N: }& S
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>9 c0 p( G' ^5 o
$ t+ r/ t3 J' V- Z: b
<TR>2 j! P! e' v' A; G* P
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
7 R- y! ]( R1 m% |" k6 Q
( Z6 Y. ^) E1 E% F- ?- P) P7 J<B>3. 执行:</B>
5 P+ Y, x1 ]; x( r6 ^; C; s
3 U7 Z& {5 V3 X4 r W; w4 n+ a1 n<CCID_NOBR>
/ t+ u6 \0 i: ^9 f; v, G g" _<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>+ I2 a$ b( ~9 Y/ k7 p( i- O: ^
' L y Q2 n5 B% r7 q* o6 N
<TR>9 c' a: e2 B% F" x0 ]
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello
: t) v. ]9 e1 U Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>, r/ a& h- b+ F2 R/ h( \
+ i; v" R9 d) A- C7 @/ d
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
' F* \0 u( n6 j
5 e0 G: Q" R+ j0 |学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
; z. _; p p4 n4 @5 i* r3 K; r0 j g4 e
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 ; U* D& Q3 [; s; N7 H" R0 @ n
2 U+ |& ?9 L6 l
; h$ y$ |# H y" D' U
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>
& k7 E: Q1 I' }0 ~. p' d6 A+ ^
( x9 t; t2 }5 a" B' l1 k- _3 x0 U/ ?" `如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
$ P- A" j D& Y t# B9 B1 c/ Q, m/ a! Y' E1 U6 c& i4 |; D* j
<B>1.Java Web编程</B>
) z: S9 Y8 b4 i) x" v' _7 C
2 y% V2 z- v/ x w) s5 B2 t* q对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
! y- {- r% t) v j+ y7 m1 C# J; D8 y$ R
<B>2. J2EE的学习</B> $ z: O; I$ Z# i% C( f+ N
1 B, G O$ l! k% Z2 g/ Q; N4 Y
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
3 X9 B" s) H+ m' M* |6 B0 F: I& k$ T1 Z S3 T2 l
◆ 了解J2EE中的技术术语的含义。
9 q8 o' M( Z# e" Q! i. F; \3 U9 ~! F
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
. f; X8 Z$ X9 i! H% d2 [/ K- |: |2 E6 h
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
! Y; i0 N5 i) |6 s- L7 v% A
, z# q, h; O& ?2 m! U6 fMVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
+ b$ o: N3 Y A$ H6 N& _4 k( i) ?+ n1 p' T: O- \8 |. `( }5 |% ?
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。
, e) l# P3 z' N8 \6 B' B* g& R" _' \+ B& p8 d$ F H* B, ~, {
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 3 g) |! J* d: w! U, X" x# ?; N, G% h
u* G/ g# R7 N! ~: W1 q5 A
◆ 学习J2EE下的各种技术。 * `$ g4 Y- s8 o3 t
) D: E, ]' C* ~/ O0 K
在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|