- 在线时间
- 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日 ( z0 |9 J4 @4 {: w; c
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
; {3 I. ~+ [, Y2 u0 S- z
% U7 ?+ W( ~; ^+ Q我在学习Java的过程中主要围绕以下几个方面来学习: & W0 u3 ]2 s: X5 v% D$ T
9 |0 k7 r7 F; Q0 A5 d& U% r2 W
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 1 O9 m2 Y ]# q/ N- m
e8 w7 Q. I+ r/ C6 o1 }& l2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
% l& |: m& J- i( @& A$ n" l" R4 B
# J; t0 W3 O- @* D3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 / Q6 t; A- A, W- d$ U! G' n
3 x1 h# h' u3 w$ [5 C+ Y' r* h
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 % F( K9 t$ P* }
6 K* Q5 c9 i1 z
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
# A8 b& k1 _7 Y, d: x0 A
" }) ~/ W- j0 k, v8 o4 \& _+ {1 |! e+ E( t& H" S5 S
<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
/ k- D; K: f; J2 x; Q# G
: W$ ?; M4 R8 \要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。
; O5 B* _8 z6 A+ e6 }6 |4 W, {. `- a: ]+ j) ?9 z
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
1 W9 N) y- I! q: `7 |1 V# _/ d z# N$ ^7 t
解压安装。然后,进行环境设置。
7 l2 U+ b6 t) M/ f: v: H
6 ~4 t. p9 N7 L) h! @<B>1.对于Windows平台要进行以下设置:</B> 1 J7 z! _7 Q5 A! ^+ M6 j" |) G
0 k2 \. L8 O' R0 t3 a& O; ?<CCID_NOBR>& K/ ]% D: X6 T4 f
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
3 E6 r0 S: u7 W. g6 C- U7 l: o& w' V0 m
<TR>
! k# s# h) L r3 e4 l( y: o<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command. u6 J* a( r1 |0 m r+ o
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
; [# V' l3 J: q5 R0 R% t
2 g |! a3 a* y5 q+ K/ E0 o<B>2.对于Linux平台要编辑/etc/profile文件:</B>
, f" `, u' ~! T2 v* ]. k4 Z2 ] V' T
<CCID_NOBR>
$ D9 W$ C1 n" P4 m: L6 c<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>, [9 b6 h3 f& Q* z$ J) X" k
# N8 y' h9 R5 F$ S2 J+ W* z<TR>/ h# c/ I6 s. E$ l( w$ D
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
" U8 S% W! H w+ p* G) Q* n1 m/ @CLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr 7 r3 W: q" p( O
-e/lib/rt.jar:.
* R, }4 }! G! r# M0 }" v: nPATH=$PATH JAVA_HOME/bin
" ~( E& R, O0 Jexport PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE
! H) \' @; h/ V& LINPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>6 i6 p) T, ^; X4 W( ~
3 S) U: t3 M2 u$ G- Y0 b7 Q最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
% V" G# X% [* G( j
7 M$ @! j: G4 V! A下面介绍一下JDK的几个重要的命令: - V$ k6 x. w. T n& p/ A
) p/ I M/ f4 _1 e, D0 c◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; " r: @( t. k' {5 l
) ^' g* u1 ^ k0 A8 B, Z◆javac 编译器,由.java文件生成.class文件; . S- P% C, `7 y* d4 `7 V0 l
& ]# B4 p% n x. K& ^$ I◆jar Java压缩打包工具; N/ \" \5 a Q/ n1 W, @' P1 g
) m4 |- T7 Z1 {1 R
◆Javadoc 文档生成器。
; z6 |! R A. o. }( C8 T* p+ y& K, S5 S5 @' ~2 N9 ?5 }: u5 B
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 + Z( h; v) z9 f/ r6 e, y
8 _7 u, ]8 U! g3 P8 \4 x* Z
; Z4 x7 u- a3 K( T" r<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
! ]7 k. z& Y9 p7 M' }; L$ p
: F3 q$ d2 R7 ?/ m, o% `& M% h现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 . c) ~1 U# }4 w$ m5 _
0 t1 S9 q W4 W( E9 e<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> / o+ f7 M d) D. v
5 i/ c0 g" |4 s, {. _
<CCID_NOBR>
1 V9 [: F( q, \<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>4 B* ]6 S' A& H0 t* M# ~" l
V7 T# |& R2 o) `1 K2 C# ]- ]; _<TR>
0 W! V) E6 X' d0 Q/ Y! m- i2 K. V<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
: [2 H( h6 l* ?! |, M& r public class Hello{
+ o/ |1 f# W/ `( i' H$ ~ public static void main(String []argc){
5 ^6 E' I6 g, U; S+ u; } System.out.println("Hello Word!");( g( s+ l" H. N
}
3 n/ W: p! J* \; @) V/ m- U" v }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>% C' F0 v% X1 b9 e
5 z8 t# m* g L, ^, V
<B>2. 编译:</B>
4 j/ r! g% d6 O# W% C
' D _. ]3 E! G w<CCID_NOBR># `& q4 e- Q2 k0 r* T
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
7 a6 W! d, ^7 X1 w; O/ a) \% S2 m+ N5 \1 o" z4 g: w( {
<TR>
; R$ i5 V1 F7 y2 C8 e<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
$ q4 D; i3 k1 \; d- T0 ]2 B* A) `7 L7 V! j2 \6 |/ S+ j; w
<B>3. 执行:</B> , g6 J$ a( T: D
1 |) z7 R% ^ f' x7 n# E: T- h
<CCID_NOBR>
+ W% H# D+ \, z& h, ^<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>; R0 u5 K0 t8 \/ v
i' d& \5 a2 P' k) H1 q8 \<TR>
8 l+ f* f6 p+ n<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello4 j) j, g+ L' g9 j
Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
) [2 D0 n$ D2 w% O. r
3 w* z- L+ P& R, x% l成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 + A# R2 A0 K/ H. N( {1 q
. D( y9 R5 d8 d( l
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 , `, T+ [4 Z: E3 N
# u: R$ J( E# m% A在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 * S2 h' [3 J8 H5 Q
' x c! Z3 V R8 {. k- B# n$ u3 F p
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>. ]4 C) L2 j, u% p
8 e, `3 L6 z: ^5 |
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
$ ~7 J$ R6 N- I9 H7 [. }# f7 Z2 k. @9 P+ f7 j2 K# O5 `( |: n
<B>1.Java Web编程</B> ' E6 b4 k! ~' E8 F$ ?. y
. f* a6 r7 L* [# w" H. {对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
$ n' P! ]2 j( D6 F/ u6 W# k- {+ C" T
<B>2. J2EE的学习</B> & u1 j! K9 Y, H9 e6 ]/ s
* D' v) g( s4 ]# b S. z5 oJ2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 , K# U0 K. k; D: v$ K
: k4 x3 h& I% V0 ^◆ 了解J2EE中的技术术语的含义。
& W! j d, C; k* ^' A' ^) ^! c4 Y) `! v7 O1 R; ~' o
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
& A8 e# `8 V, b+ F+ l) @. t# W4 n% }6 T6 L. {0 c; X/ T# M6 U6 y
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 4 l; q6 A4 D8 E7 W
* x5 _# w( h$ p' w V
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
+ i2 \" M' i8 F! z5 w/ o7 u1 j7 G( s( A
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 9 c, G# J9 j2 [# l
) c4 m) n" e P }' A/ n4 H
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 - S+ z- s4 O3 |' t: p7 ~+ u
& E" l" k2 x3 k. H* z# y: i
◆ 学习J2EE下的各种技术。
$ a. x# S# X2 ?' c u: t
" b$ e) e- y% V, U1 C5 I, W$ c在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|