- 在线时间
- 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日
! V- q% w$ F" k9 X: yJava总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
# B* S% A5 l4 |' B) o: U# W+ V9 d$ l: i, B, Z* e) a) s: E8 p
我在学习Java的过程中主要围绕以下几个方面来学习:
# h7 x( B# I! N0 f
5 e: }' c9 S2 V( V3 V$ f9 {1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
4 [% N$ ]: Y5 C7 `) F) K& o$ m0 ^5 G3 ^" W6 W: C7 y6 P$ U
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 0 G% S/ O0 \& G7 J6 w2 r
4 \$ y5 v' Y; h! W9 p- n$ U; \' Y3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 & T- {# T$ _6 m% z, P
- A# {* I- R, ]
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 " D! n0 t( j/ t* [" W' ]7 X
, |/ e+ p$ m3 K# O( f. O
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
2 q) g' _. v3 e- N. }: _ {' ~" q+ r& z
6 m$ d2 [, W: _4 d1 e9 ^
<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>7 p! e7 e; T5 a. p% h
- ?% `& X' H [. w0 F& _; }要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 , D0 R+ _0 F4 V( L( K" w& o! x. U
+ w, M+ M. t) ]8 K2 [( B可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 ) y$ I+ C% s, R
* z$ R0 v2 X8 ^解压安装。然后,进行环境设置。 # v2 y) N, Y( U% O
1 A3 \. E9 B) Y' h' C% w* l<B>1.对于Windows平台要进行以下设置:</B>
4 s+ _3 R, c5 F1 x7 e3 { j6 D* L, Q1 e# q# G. |& P3 k
<CCID_NOBR>
' m+ J3 W2 u }9 G; A<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>; d& i- j! R1 g* x
+ ^% H1 {5 r7 v+ S% ?4 E6 I<TR>
4 V! c7 I. X% _; i* \, h<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command; o" ]# J- ~) P1 }
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>$ b0 q9 ?+ s, \) P; X
3 b5 G" s! c7 \0 h2 I<B>2.对于Linux平台要编辑/etc/profile文件:</B>
' i) F6 s/ T1 X( p* ~) O( D9 Z
- M* ^+ c( S5 K, C( S$ P<CCID_NOBR>: I; I* P1 t6 t+ x; c( ?* L
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
. e2 r# |0 u) n. o& |5 T: v' w
$ \, S0 u1 j- g( M a7 n- ]- \<TR>2 P7 [( [: z# P) `; I( c2 }
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
! _% a2 a' f$ t6 h& Y$ [CLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr
" D: N8 z( e9 |( N1 k7 C( _% x u- n-e/lib/rt.jar:.
. x" I G+ T( i2 {* n; x6 rPATH=$PATH JAVA_HOME/bin
2 Z3 A, B; Q3 q9 }export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE
" z- X( S2 n' t) U6 L QINPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>$ `2 t4 a- K0 D7 I% u( Q
" e; K1 X& }. c
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
- n# |9 X) |4 }/ r# P
6 c9 J8 B; D* h$ Y& N下面介绍一下JDK的几个重要的命令:
- t# E4 i" C0 h H! ?5 X5 l* C/ I7 o4 j5 p; u; e/ I; g/ a
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; - Q5 V7 V/ z$ [. p; `. {& d
1 ]8 ^3 ~( B9 K% {9 n
◆javac 编译器,由.java文件生成.class文件;
7 a! W% k; `7 o' p( {% g* a# Q$ }+ }. e; j: k( r
◆jar Java压缩打包工具; ( a9 E7 Y. v) D- X
( z" e! p9 ], Z. T9 x7 M( a◆Javadoc 文档生成器。 7 h4 x; E% o% F* v" m
" W1 h& I% N# b- {1 i( O
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 " O: n5 P% e2 P7 h& X4 K. j
( F: c% l8 a8 M. U- i: R) W+ Q
/ G S# R# k6 Y& l/ r<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>4 d: Y4 O1 L% \( X- Q
~0 [" F0 S* d1 W* R
现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
( `& ?2 j* L. Q) P
8 x* G* h# U% J. n9 h<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> 9 w2 v! e2 Q- L/ }. D
$ w. R1 z- |' X6 F<CCID_NOBR>( U) s }+ j; Y+ _7 [
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
* G4 T: s/ Z' A- _4 W# g3 B4 W" ]/ I6 |, Z
<TR>9 \# y: a8 q5 k, q
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
, N: |- ~8 n) }5 `: } public class Hello{5 M2 v$ ^# a; K% r9 z/ ]* ^7 c
public static void main(String []argc){
- x3 n! [: g* L' ^8 {* p' \ System.out.println("Hello Word!");- a% }) J% n% @: b& p& l, i0 |
}4 R; u/ \( g" T9 X. W
}</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
! j7 v0 u* ]' k2 E9 f) ]: _% I4 E( |9 D1 ~# {3 z ~) g8 c- o
<B>2. 编译:</B> / F* N8 x) T8 O# [9 E# I2 c
$ z+ \0 N1 l$ j" l<CCID_NOBR>) w# k9 j9 Y7 a" o
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>4 {. n- {! I+ b- |
; l( ?; d7 [7 F" Y- p1 O; g
<TR>2 P/ {( @' T5 j( z7 q. P6 A! N1 T
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>" x1 \, n7 N S7 A: A6 }0 J
# ^! K" d/ @5 h" R5 z8 [
<B>3. 执行:</B>
6 o( |) t: [$ z5 N% b) U- }$ Y( s
<CCID_NOBR>- S: \0 m4 C) {% l" e; N* r
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
" T8 J% f' b+ l% G; F# U$ |9 j0 u3 j R
<TR>+ `0 M, ?. i% ?1 r3 I
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello$ w0 n) F9 E2 n6 C! s
Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
- t1 v2 P) {; E7 F. q& W
- H% n, K( Y0 Z7 }: E; H1 h2 Y( p( I; z成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
1 F$ Y$ s% i6 c! O
$ N; @! m& U. H5 ?: q学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 / r/ z5 I) T }8 M! ~
+ v: E8 T3 X) m5 S5 ]/ G S在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 + B. a( c2 s! `9 Y5 [/ @
& V5 l9 I0 P9 j
. R" G' X. L+ t. P7 s+ {3 w
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>
/ o& b; a; {$ X4 w. S9 ]; y6 U3 `: m# z0 C; L
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 0 {0 q2 k* [7 f9 Q' P. ^
, h. d+ w1 t( }" L- Q& d<B>1.Java Web编程</B> 3 V3 f7 w9 E& s7 ]% U
5 @- Z, D9 T0 n4 j# p对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 ; Z1 e1 A: Y$ I
3 N9 e( n& {' p8 h' ~1 v
<B>2. J2EE的学习</B>
2 _3 \6 [9 S. F4 d2 [: K: l b2 R
; w) q. {8 n; n8 L qJ2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 9 L! D5 v, S: _
3 @; ~2 p: b/ L5 G◆ 了解J2EE中的技术术语的含义。 ( w; l Z/ z* z3 D& x- A. w$ {# x
7 s7 q! l# m9 u8 N) H
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。 9 k. L7 `, K T9 n
3 I' D9 R& K* @/ ^; m6 \$ C◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 ) u! y0 s# F1 b8 A
4 U! A" E. Q- \! t. C! a
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 2 n2 h5 N, f7 J* [- {
5 L( f# p$ i3 R! ]: K
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。
/ X! X, E4 y% D+ }! R- t+ q) U
, s' A2 w+ B' I; ~( Z' S平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
. i/ k% K: h3 Y8 d0 e- ]: R' z* U( I/ C8 n! v! w
◆ 学习J2EE下的各种技术。
2 K7 b9 P( O3 y! a- g6 ^: b! d8 A" ?7 ?! U* z
在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|