- 在线时间
- 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日
& D0 c Y( ? C" eJava总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
# S& A% h3 c# z, x- u1 j1 b' Y1 D* g; @5 O w: w( E
我在学习Java的过程中主要围绕以下几个方面来学习:
! _ ?2 f5 D+ A& [* k
b6 D4 [/ a3 E4 Z% F1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 . C. S7 i% [) ], h& |
6 J, H7 s- E2 J# R5 ?- M- U' j' M8 u2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
* H% s* c u f% i# R5 t. Z
0 G9 K) u+ W, u8 v3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
" |1 S- O2 @' ?) E$ }9 {7 }- A% \2 i& `: E& B
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 - M5 k# G2 z: @& c1 J/ V
+ |& m2 y$ a$ y( B5 D学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
/ c& k6 \6 N4 g5 n" v& k7 l: V" D+ N/ A1 U. _% V7 U
( y# w5 G3 Y: B+ J" j
<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
' s' ?3 F2 [ l9 P5 E$ z$ f+ v. T, m& ~& n& }( i
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 - F* M" l8 a! o
5 _# N" M* i$ g& |3 k7 r可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 . B4 z: i8 i1 d; e9 T! Z1 {$ x
' T4 i* d/ c- b9 P H3 N; q1 v
解压安装。然后,进行环境设置。
# T1 }& L9 r. }+ m+ f3 q* s9 x
6 ?0 l! {0 _$ w- q<B>1.对于Windows平台要进行以下设置:</B>
. A: w1 s/ E; T$ s5 g
! w; l: D- p+ B<CCID_NOBR>! t4 K) H; b3 p+ L- C8 U
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
$ D8 A; Y* Z5 K5 [; [- r& Z- V/ u0 n' v' Z
<TR>
4 X0 m7 Z7 q8 t<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
) f! k: c) D" _set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>* f5 J6 H* J2 W6 z" Z0 K3 r
. C+ U* }! L6 O. s& f2 W
<B>2.对于Linux平台要编辑/etc/profile文件:</B> ' q/ e1 a! B1 b8 U; B- e( ?
0 A. a0 i( o2 F7 r
<CCID_NOBR> g" H% y: C9 h3 D8 @
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
% O5 @0 o& A% [" b( \' q% A" i( O8 f5 A$ R9 E: A% m. }
<TR>
- C) e: b! z4 u3 A! v<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
% |0 O' r$ e. b2 y: I' HCLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr
* b; q6 D' ^4 t" t" q-e/lib/rt.jar:.
. o& c5 F, l% U$ _& KPATH=$PATH JAVA_HOME/bin
8 G& ]* I; J0 ?4 Iexport PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE / t# \! h# z: e F$ Y. [# ~! k
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
, L+ u5 a/ T! f: z C2 X; z0 d, w( w6 s5 i+ u( Z" O9 Q
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 ) b4 ^, W0 G" ^( r" A
9 O7 R, M) d9 }- `下面介绍一下JDK的几个重要的命令: ) J3 L, v6 L" H
! ^* y9 |: I1 X5 ?3 ], f6 O, @% n+ r
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令;
2 F$ P C2 L/ t N1 j. l/ w! J
) ]. L7 r1 a$ m' x$ p◆javac 编译器,由.java文件生成.class文件; 1 F$ p& I" G) M0 V$ F6 B
! C7 r6 r! L* Z( ^! l0 a4 }◆jar Java压缩打包工具;
& q7 i5 X+ K4 d0 j6 E
$ d i% N0 ^0 x◆Javadoc 文档生成器。
, ?' R' ]2 H* _9 W r* W' g& d/ k) q
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
2 w+ J# ^3 l6 k: h. O" K' C- g
6 i" I# x, y" _# ?1 ]; ]
$ q$ T+ J' x: r9 i<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
. H4 G- W0 u( \0 t3 m7 ~
. C/ O. l! w) X9 C$ ?" S现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 ) d& B7 q, L+ d! T
4 E, l) y P; d' m5 H+ {' x5 U<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> 4 M/ D& o2 x/ _4 b
/ M2 _ O# o. W# _<CCID_NOBR>
6 j# O4 q' k, C7 P<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
* ?! k1 l$ C) A; m* ~ x: R, [; Q* N# j. a- B8 d7 [
<TR>
9 M3 Z5 F: [; v# n/ _<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java4 ?: ^: Q& Q: J9 v
public class Hello{
x+ o, l7 k3 I" @2 V public static void main(String []argc){
0 H \ v) x! N9 h, h System.out.println("Hello Word!");
% I$ s* f+ f4 q2 W. z9 w }
8 p0 ^2 ~* Z3 O; L }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
( c; J! _& P4 q1 {
* X# x/ g$ h- I8 m# ?2 d<B>2. 编译:</B>
+ b( I4 c! f% r2 I( W
$ T' ]( D y0 |: e& j9 ?# G" W<CCID_NOBR>
& E G/ M2 H6 f+ x<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>4 Y$ h3 c2 K; n5 U
' e. K4 ^* d4 k( T3 E7 F1 a
<TR>( z1 N, f0 c) J5 w! R
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>+ D% n8 j5 | w3 C# j$ j
- U5 }/ Y& }0 h' }3 }; s/ r<B>3. 执行:</B> 8 L4 m# e' Y! \5 ^
/ ], H' a- f6 {9 u/ U7 W7 ?# v
<CCID_NOBR>3 d. t+ Z& ~$ H1 W8 h! K* B
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
: j4 q n: q O- ^5 G# F1 |; O# N7 S. j, d$ g
<TR>
5 m$ `; I( h( H/ U: p( F& O1 u<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello
2 j) z! u$ Q# z2 n: q Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
9 Y( i- ^: Q# C* J& |% w+ E$ D/ u" i/ @4 Y' {
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
# B2 F5 A+ v5 z8 ]# s
0 |5 j( ^1 x) G* _; W5 w学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 : ~' r2 s4 l: M b; s J7 ]
& X; C+ W! d4 K$ o; E3 @
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
% i( @. w H1 Y* S" {+ F' O( t' y3 v6 M+ E1 _1 i4 b
, ?* ^! A+ ?5 m- Z3 u- Z" [
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>
' m7 |! E m7 V% ^) h
) i$ }* _7 y7 r( [2 \( k4 j如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 6 f, e3 B0 x" @1 t6 i( [
; |/ Q, x3 l d. E4 x
<B>1.Java Web编程</B> , @, g. W/ t" A
7 |: N0 T1 q& M' b6 p, ~$ C. H0 d4 ?对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 ; e4 @- Z" D) l% D4 {& C8 l x& |
9 T; D9 q1 \$ q$ {
<B>2. J2EE的学习</B> 8 \. a1 t% O3 a0 n, ?" W0 r W
6 w5 L6 [; Q, M" i6 M9 v
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
- r/ n& {: w6 r% l0 t$ v
2 ^' q+ L+ z1 ?0 k+ m; X( x/ m' j◆ 了解J2EE中的技术术语的含义。 & w$ R9 m1 d5 ]0 M0 j9 u
# ?9 D' h- r# g3 s我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
0 e. R8 s$ G( i) E6 E
" t9 w" n* C8 x0 A◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
% n$ r0 R: C- _( Z& }( C' {+ D+ M b+ g8 I A3 F( G' n% y: g
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 6 z, t/ s8 e! \7 I5 X$ G' G
9 \# ^ l- @7 ]◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 " @( l3 x3 f' H2 v4 L' ~, j! W+ v" y" n
* r8 B! z" V; Z8 K" @! Q平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 : Y- E1 A/ u x4 E4 G: B
6 ^) Z% W# c0 [( m- A( y◆ 学习J2EE下的各种技术。
. l6 B" D; G5 k( d
: H: y2 L3 b& O N# f6 P在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|