- 在线时间
- 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日
& N" ~0 d: C0 b7 [Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
% [) A# o+ W9 |* t5 h- v, o+ g& `+ S; a2 g9 L) g9 j4 _0 u
我在学习Java的过程中主要围绕以下几个方面来学习: 3 Y8 G$ a e7 b* q+ l$ N2 R
3 M8 A. a% r7 H
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 ! b. K& m) d6 O. n9 W
8 h$ E* Y/ `9 e4 [& {! w# ^
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
4 n) N h( C8 w8 J+ W
( Z8 S7 Z( h8 E- k' b @" A3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 : h3 H+ _1 ^0 x1 b
" [) V0 m" u5 ~% g# o$ U' H8 F4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 7 ^: N# r3 t# E2 n/ v- m0 D
% w+ O2 D$ @) E- {! N. @, W学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
9 a5 C+ t# l7 Z7 f. ?! K9 p( y& u9 I+ z% g
" L7 z, x1 L. u2 x3 d" c( h3 g<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>5 G; F( c: k1 O) l+ G
7 [! I0 Z G8 m
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。
& n) y r5 s$ F2 ^2 [9 v* s7 y- k( Q7 ?+ t% S# G
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
: ?- @8 t8 T( ~$ x
, g- ?! P1 c9 I% I$ \解压安装。然后,进行环境设置。
' @+ {& t( v j0 Y
C+ }% e4 T$ X5 B/ `<B>1.对于Windows平台要进行以下设置:</B> 6 B8 h2 _4 V* D% B( t9 o
3 t$ l! U7 j$ E: ?5 V: R6 ]: ~: {# B<CCID_NOBR>3 B7 E0 b! o& y; h
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
! N8 m' _5 Z; G+ s5 g& e
8 D1 n8 b( ~5 C) d<TR>
. ? v2 p6 z6 b) g<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command% L( S. U$ q# b n5 Q' I
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR> h1 R( S/ V9 N& S
j' e# z) O9 S5 J<B>2.对于Linux平台要编辑/etc/profile文件:</B>
9 V* S5 w# d `4 [. L5 Z# y9 }2 {0 G6 E" Q2 Q) @/ ^. E
<CCID_NOBR>, A0 y4 V0 m* j- E6 m0 f
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>! o ?$ @ g/ U5 y
5 [5 ~+ N/ f' s$ g- s& x7 w+ J
<TR>
, E6 T+ a5 J/ W3 {<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk2 ], c+ f/ [9 v: {( j! A5 C6 f
CLASSPATH=$JAVA_HOME/lib/tools.jar JAVA_HOME/lib/td.jar JAVA_HOME/jr
5 D3 g9 M) U" Q8 U) c. u7 T-e/lib/rt.jar:.
% {' f, Q& n3 i! SPATH=$PATH JAVA_HOME/bin
- S! S$ X: x$ X7 _- N$ L A" oexport PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE l& W, W; Q" K
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
5 u- E" {( G) r$ w a3 L) f6 L9 d8 C& k6 Q; q8 |
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
[: l& Y6 w: Q, ?# K0 I9 Q/ f. @, ^) _" }/ l3 \- r/ G0 V0 D
下面介绍一下JDK的几个重要的命令:
3 V* I. S! n' M+ J3 N' v' R- r3 |2 n' B2 g
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令;
' b0 l8 N2 P0 E4 o* F" u# c- s9 U; P3 e9 u
◆javac 编译器,由.java文件生成.class文件;
4 F6 O7 x3 `5 R6 L6 s
- i% G. |0 b$ v' s- R◆jar Java压缩打包工具;
+ H% a! z. e" i) s0 t. _
0 O$ N( e7 p& r" [2 U. N6 K5 I◆Javadoc 文档生成器。
, L+ N. q1 g6 {2 B5 ]1 Z% B+ g% ~2 W& j( p7 F! ?
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
; P3 X2 y+ [. O# M3 l2 S
* a8 ]5 v: b- @! N$ s/ v8 s* T! t9 C- T* g+ y& ~" \" `( F8 K
<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>7 m$ L$ \$ W. B: Y
& b' \/ a ^9 s# i& `
现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 . x1 h. Q0 o% \' { J0 \. j
$ \# U2 h* O9 ^3 e* U- d. H$ @<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
- j# m; o1 W% S# {1 Z- z: U' w: Y# Q' y
<CCID_NOBR>
, D( _: S7 |9 P1 H2 s9 ~" U" \<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>' H# C7 n8 S4 M
5 T: _% E! k$ o0 Z8 D
<TR>& d) w- G: |3 u& A) X7 N! U/ l
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java( b+ ^3 l) i( r* c" x
public class Hello{& H, o% h" ~7 W: p! g
public static void main(String []argc){
$ i5 y9 }2 D, @# E System.out.println("Hello Word!");
& d+ I9 Q* O# o9 U3 [" o R }
/ `4 U/ y+ E8 M4 [, g }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
7 h- R. b! E$ r9 k. j% b! s( I# x) h5 ?6 m" J1 F
<B>2. 编译:</B> * o) c& U) h% u( w9 u0 l4 Z, b J, P
0 Z3 K2 v' b, z- _! Z$ k
<CCID_NOBR>
5 [! m6 D8 K) F0 Y+ n<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>, O) k8 x3 e% e" y" w
6 z; m2 U6 a7 @6 v; x
<TR>5 G; v8 O9 R5 ^
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
! }, _6 O( \, V: A i1 n& }/ r3 i# @
<B>3. 执行:</B> ; I6 F h& ^$ |0 J! y
^% w- [8 D( Y* @( c
<CCID_NOBR>) i, O8 a% u: Y" `5 a( A& `
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>1 K$ C3 F" O0 n. L3 p& u* J
# g* \( b: i6 S! d) z1 N
<TR>0 ~) X7 R& @. X9 R- o7 O# q, o4 Q
<TD bgColor=#e6e6e6 class=code>< RE><CCID_CODE>[stone@coremsg work]$ Java Hello1 f! n! N/ a& t4 o
Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>7 I) x5 F5 G$ Z- j6 E7 C
. U3 N8 _3 G% K6 t0 \) ?
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 : W. ]4 c3 x3 t6 Z& q9 i
0 v( L9 L2 ^ l$ u p9 \学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 ' D" ]0 I/ ]+ V' D; S9 {
9 m- \: A) Z) m" W$ G) Y在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
, w& x. B6 W5 U: A- K" b
+ v( N1 g- W: f, N6 _& R/ F3 g4 [9 S# G y
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>
7 o; V- Y r* b1 B2 |6 d' l- {7 T) O, W7 G; N( l7 y6 z N
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
' S9 _. I6 @+ {! `5 D1 J2 p/ m# p4 d# y- E( n
<B>1.Java Web编程</B> ( v0 E, O5 U7 s$ D3 w9 S1 {: k
& |; @9 ^. v4 ~+ t1 f# `, a
对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
. n' |3 T$ X5 F% j$ ~# v7 ]7 t3 }, a6 A V
<B>2. J2EE的学习</B> : k7 T' A% r0 o. {+ Z$ r
1 a2 Z; }' W* H& n/ v6 ?! AJ2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 / x! A/ I; z2 n2 ^6 v0 z1 \- O
" U/ |! U" o, @, y2 t$ H1 f◆ 了解J2EE中的技术术语的含义。
1 ?2 W/ J& k/ p Y+ X! x1 |6 o8 F, ?" ]4 L% l6 ]3 a( T" `
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。 ; P6 W8 i7 N& I/ @& J
% R, S1 n$ w" }8 N◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
3 L @( S' o G" t, T% M/ D
# B% m7 Q" P* M" \1 S" VMVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 2 m+ W3 x$ r2 v; U0 n
7 Z1 A" Z: C# }& j# K& ^◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。
0 k2 h8 D5 v, H: J) e1 S7 i
$ f& O3 v5 ?5 A9 h* U平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
5 L$ P W6 i: h @! z) L3 B8 y1 _2 k. g" K, A% X1 K3 B$ Y
◆ 学习J2EE下的各种技术。
. }, X# u7 Z0 p+ @
) D- w$ D! E$ n" w& @" s- ]0 t在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。 |
zan
|