- 在线时间
- 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日
) x. _/ D) W" }! vJava总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 * g9 q4 i) ^% ]* G
8 c, z- `4 [2 v: m
我在学习Java的过程中主要围绕以下几个方面来学习: ; p( C1 t. F5 J7 V* z$ n2 r& \: A
, [- Z0 I0 i0 ?1 J& X% V
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 Y: [- ]( w% C6 q% O
! ]. Y2 W+ [+ J& r2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 4 ^6 H( k% _ K, ~, ^( _8 [
/ b4 X. ?+ P# P/ u5 C2 Z* `4 a0 a3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4 n, q1 P% E2 T% V
: S! ^' f# B& d
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。
3 d+ N4 ]3 ^0 J2 T' V" c- `9 y8 h/ m. O9 ?4 J6 F
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 & V* z# N& }: x8 m1 I }
& M5 o' I8 m6 o3 s4 Q6 A
9 W; ?, J T m# l<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
2 n( \7 S! D- i' y" L
, x0 g# r. V0 |' v+ u要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 / \0 j) [" C# W ~: l0 n" S
. K r2 _+ V7 M% A
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
. o8 X8 Y$ [$ u4 c" y- C; ?( M# v. E0 ]- Q
解压安装。然后,进行环境设置。 3 M4 _, e. Q1 j Y
9 Y+ F) S7 ^/ T# _8 z& d<B>1.对于Windows平台要进行以下设置:</B> 7 K$ |2 u. c7 \3 k$ G& N! F& X
5 V% I% \( k$ ?+ u
<CCID_NOBR>8 ]/ O2 w6 r* ~0 R B# W; {$ v: N
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550> ?* t' @: s+ i% z
" g- P1 v7 R {, Z<TR>9 r/ ~& X" ^. K$ T
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
5 m, A& j2 ~. c) A! Uset classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>5 t2 O: u) ~" x; j$ E: z& r: a1 ]! Z
6 z8 F5 ~3 I. ^8 t3 z! U+ G* t<B>2.对于Linux平台要编辑/etc/profile文件:</B> ! Y* m9 Y8 y" R; L4 i- \0 B( u, Z
- i. {2 i6 Y6 d% f! w4 d; [<CCID_NOBR>
# b8 T2 [1 V5 f' y8 J' T<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>3 n. u) z& q: t& g
M2 F6 N( v, A<TR>$ b8 E6 Z+ I) T: N$ L
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
7 ]$ H* k' h) XCLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr + f: \! T! i4 Q; g
-e/lib/rt.jar:.
. |+ f7 K& R8 T- q) j" JPATH=$PATH JAVA_HOME/bin
2 _' I0 ^' I+ E8 `( nexport PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE
. {/ X! y* c, s4 RINPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>, Z0 @ d9 f: z" T1 A5 S+ N0 I7 O
, \; b- v k0 z+ _
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
9 c) T d _1 h- z0 E; e7 y
2 j$ A9 r/ `$ E7 b下面介绍一下JDK的几个重要的命令: 3 ^! ~0 A: q8 f# E8 P7 n1 Z8 [
2 d" Y7 t5 S# J% W H
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; : r, x% P5 k! C( A2 F
G5 T. O4 Z" J3 X% H' p; n◆javac 编译器,由.java文件生成.class文件;
* i9 a: [1 `) y1 R$ A* C! {
. g9 u- E( _5 C6 x◆jar Java压缩打包工具; # F6 b. A) W- s+ T1 |
' k2 D% S( ]2 n+ v6 N3 X◆Javadoc 文档生成器。 5 E% K0 Z% w1 W
4 |6 q! w6 ~# \+ Q" S
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 J9 N& f7 x: g/ R4 ]" \/ B3 }+ W+ n
( O: F0 u6 a* U) k
, s5 h1 T2 P8 t% |<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
* Q- O4 ^0 v5 u7 B9 w/ J' g$ Y) Z5 \
现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
& K' L, o2 g# i3 r; }# H5 T2 N& j8 B, L# e2 m( H4 h
<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> D7 o Q! C8 ?2 @2 O+ }3 [
# R" V1 {! I3 y. E/ N& e* S, y
<CCID_NOBR>
0 y; V# I1 _7 p, X, Q% y<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>: J, f4 X" k5 L$ r4 N1 x; ~
* q( m% K2 X7 o9 F" N1 G7 {/ C<TR> q3 j3 V* E7 A
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java. z& T2 i; J1 a5 [6 Z
public class Hello{
$ N2 y' ^2 Q5 i public static void main(String []argc){1 t7 t X6 k9 O0 A: W! x0 B$ X
System.out.println("Hello Word!");
& [2 ?! x4 S1 i' I9 P }
6 w3 a3 [$ h0 i: r }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
2 Y: R: ~' ?0 Z- }
' ?0 q; [, z) s& A. z2 ?/ a) S. r<B>2. 编译:</B>
- [; F% f# t4 W9 b! i" Q
! P8 M: \ {; I- K" [<CCID_NOBR>
$ m5 c. v& j, E: k: V+ l<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
) [; h3 L* ?! x+ S
# o! t8 G# `8 ]<TR>
0 B; v: h8 y8 Q: V( b# t<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
9 x: B" w" V* B1 F0 I* s0 Q: q
1 a) W" a1 Q! K2 q<B>3. 执行:</B>
, V+ ~; Y0 G# c/ O' U( M* U( ~ u) n2 l* d4 e
<CCID_NOBR>' C; P. y; O" B) g
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>' l" e4 g3 L2 ?
" g) V( E& z9 r2 x l6 L L4 s
<TR>9 L7 m9 s4 I+ Q' b
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello s% f# W8 g, ^7 v
Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
6 p! c/ \8 V- s! ~- i+ Y6 ^, v$ z3 ~9 I: J
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 ) K0 z/ v [) v8 W0 {
: t+ Q: J; N$ A4 {4 l8 K( i) E7 ]学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
, l2 d1 y5 E( l& t7 }6 _! q; L+ A7 B/ E6 Q
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 ; A( w# f$ ^6 |& e- \/ M. c+ p
t. w j: {9 y5 J( x8 a e2 I4 V$ ~9 [$ b5 x" I
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>
, V0 }+ T) _1 a5 h P/ z, k2 u. _6 {( o& t1 W, A1 @
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
) _3 U4 D- |0 h- F* U; f) ^8 t y- H7 O9 c& O. R* Y" Q
<B>1.Java Web编程</B>
- S3 }( k4 B" Q- N: _) q0 y" O
1 V% n7 Z& T k- a. `3 ]+ X7 b0 S对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 5 `8 M* _8 X/ T" w ~5 K0 p, u
7 E3 Y" Y: }/ n<B>2. J2EE的学习</B>
. l$ R) S6 B i7 b# A% {' L2 o8 C
9 i8 c' a& J& \: eJ2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
" e2 r$ Z1 I' g+ b2 z% ~/ J0 ]$ ]7 L: O7 C, u: p/ C" d
◆ 了解J2EE中的技术术语的含义。
$ p/ Q" r0 ?4 d& L$ ^
: q! U8 `' j' L/ `我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。 7 @2 r; J& z; W d1 E3 D2 X$ c; W1 s
0 C p7 |% b8 o◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 ; R7 T, M! E. }+ O) T# f& z
4 [$ y/ w4 a7 o
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 - C6 N, H+ ?$ l9 n# D
4 s1 w3 h6 ?1 T◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 3 [, I( B. v+ ?& f2 N+ v$ A4 i: w
4 S3 E# E9 X6 Z, g' F) U" K
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 * i- z0 I# X- K4 H6 U" \0 q
* d* n" j, i% o2 W9 Y( a◆ 学习J2EE下的各种技术。 7 \* i0 |$ D$ a: M' z
2 d3 T; t8 L0 p/ m5 R: S
在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|