QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3428|回复: 0
打印 上一主题 下一主题

[转帖]初学Java注意什么?

[复制链接]
字体大小: 正常 放大
god        

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:33 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本文选自:开放系统世界——赛迪网  2002年12月18日 7 B! ?& Q" G3 ~. A
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 1 h3 s! j' m( y6 u$ C& [  Z
' e# [0 l6 p/ v; g3 p( a
我在学习Java的过程中主要围绕以下几个方面来学习:
  `: j! W* {( `9 \: o3 W% x8 F* d' D$ V; h) |
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
' ]" Z, ?  Q# z" {- _6 P/ i" ?( \
2 `9 Q* k1 Y  ?+ ~2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 ' D2 t) D% d+ e/ i9 d/ ^4 i
# Q  K* m/ n% ^( i( V3 K
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 ; D) a- ?3 y2 Y# P

, |5 v; e: N! Y) }+ d- Q4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。
' O3 w  \+ z# h5 g( H
' f/ U# T/ Z! @5 a4 `! f0 b3 d学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 3 `; J1 l: J1 D$ |. X% Y

8 ^; Y! a' R/ V% ~# Z& o: a
+ }- I% `1 `8 t7 _* e+ T$ D<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
% N. R4 [6 k4 U5 |& S" v5 ?1 |& ]& o5 F& ]4 L( Y
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。
1 h3 g6 e$ ]& M& g/ U( k: a# O1 v' o7 q6 j3 g+ R8 c
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
, ^7 h& J' N+ W$ Y) O0 ~0 T! w2 W* G3 c9 i5 @; F
解压安装。然后,进行环境设置。 " w9 g, y4 I( y

  R; @/ k# `, Y% u# d  b<B>1.对于Windows平台要进行以下设置:</B> % Q) k* n9 d) ?- A, k/ {) B; W. P
0 K' g2 g2 }- f( f$ c+ t0 H& a
<CCID_NOBR>; M% f% H, x# y2 g
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
8 p3 V1 L/ t9 x5 o* |/ n
. h2 X3 U; I$ U<TR>9 F( r( ~9 i9 t( y& i6 m
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command2 u9 S5 r6 T  T" ?
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
! w- I: R: }6 ^5 `* P  P2 y9 U' T/ z. F: H; T0 k8 T
<B>2.对于Linux平台要编辑/etc/profile文件:</B>
' z7 L2 z0 Z3 l1 L# d3 H3 a8 W; _) j. t8 m$ s3 c: S! w. f) h- ]
<CCID_NOBR>
# h& r; W2 o5 i0 u6 [1 G; Q<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
0 ^, B/ U; E+ g2 c7 G+ A3 i
# u( \0 f( n1 Q6 Q/ ~8 D<TR>$ ~9 r4 y9 h( A9 S' S8 c( P
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk  |# f7 g& W- n  i9 F/ Z* M& ?6 R2 ~
CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr  0 D$ B7 C( p  h+ {* P/ h' d$ y
-e/lib/rt.jar:.% Q, W; {6 D3 ~
PATH=$PATHJAVA_HOME/bin
% C. F# s! m* oexport PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE   
* r# u  M" |; k4 v1 i3 C* S* J" g8 }INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
- l/ q9 X6 H+ ]% P: q) w, F% [8 u. `+ A
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
+ u1 z! c/ r( u+ Q1 A+ f8 \: c
. E: P9 J2 ^& |; o/ e( U, S下面介绍一下JDK的几个重要的命令: 7 L7 j! m. }/ I4 j  k* B; G$ X' R# F$ K2 r

# [! N. F6 x; S7 v+ S* d' F' }1 k◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; 2 ?1 _  e. o1 a- E, a' U+ N! c
8 L0 F6 z) ?; |) _
◆javac 编译器,由.java文件生成.class文件; . B  G+ r+ s  [( X6 v0 v
3 V; C1 x% e8 P* d5 w, G6 Q, P( p
◆jar Java压缩打包工具; 3 R  v. v7 W* x# a4 o+ v( Y
0 H  |0 v+ [1 r9 i; y$ e
◆Javadoc 文档生成器。
/ U# R( ^3 u: h' r/ q# o* {% ^) {9 V
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
, g- ?7 \: F, G: f1 ?6 k
2 G2 c1 T/ v3 `1 S0 _8 E. a- U* K0 j* C4 r: I
<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
5 j& B' R/ p6 b/ M; \
$ C% a* B% X' R7 }+ `现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 ( c: A. Q: Q* y2 c$ p% A" [
4 h! X. n4 n" Z! G
<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> - m' [" f2 m' d* O! Z9 ?$ e
2 ]% I6 d! e7 [; p+ F1 S. @4 J
<CCID_NOBR>
& G5 }: D1 O, E# r<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>8 I' i! z: [9 m- J) U

4 ~! j- u* O4 W/ m: i<TR>
6 a! W5 C. }; X" e) R! n4 z<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
& J) w- ~: w% {( @# k  public class Hello{1 Q+ p2 @, K+ j
        public static void main(String []argc){! D/ Y" Z/ X# O. W! y
                System.out.println("Hello Word!");
9 F7 `- U; |; D# _; I& h9 A) Z        }9 H2 u, a% ?# b& e) b
  }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
$ l: k% `- i, m' t% v+ [. z6 O0 P* ]7 a- }7 ?
<B>2. 编译:</B> 0 U1 Q2 n  b0 ^4 A# B
# \% X6 q, X; @. z" O  o
<CCID_NOBR>8 y' @! T7 S: e, c1 g6 D) ~
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>$ v8 N/ M- o# V8 n& x
6 a; g2 s+ B" g& t& P
<TR>$ H! Q7 t8 A) }3 [. B
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
- J* K. G  H2 W! K* R
9 [, [1 g. {, i<B>3. 执行:</B>
! b# S% B" Y4 N* c
3 b: ?: k# V. T4 P<CCID_NOBR>- e' L* |+ g' t( ^+ @# C
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
: z3 ^" w& A4 p5 g- L6 Z4 }" E" }  {' e
<TR>
) j" h9 D7 j- K: O$ {( ~3 E, \: K2 ~<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Java Hello
( R5 y# N$ C6 G3 ], ?     Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>; C, I+ }' c* S! H6 R7 v7 U
# I/ M$ K6 J/ o2 S( J
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 . u/ [. F- h2 a
0 U; @8 ~( g% U, ]4 C% t  t/ K
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
" ]2 k1 i& O2 z/ R
0 ^1 f) _  d9 e  _; @在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
5 z0 M, r) F1 A: E& T% K% f/ \. b* T5 l! r. `& W
& F$ q7 S, }- @- |3 ~, V9 I
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>7 [! u+ m& N# r5 B$ a; M5 x  u8 g

$ t* l9 E" C. i如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 , Y$ x: M. ^3 ?( W# q  W

" d6 e2 h% ]* b' b3 D<B>1.Java Web编程</B>
& O' f. v  _" {+ g* u# m: |- {* C$ O9 z, B2 \. ^3 T
对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2 k3 t- B- k& j

: U  G2 f  c: S: x# B<B>2. J2EE的学习</B>
4 ?/ h9 |! W! |, k3 \. i4 o. q9 g# {/ P7 Y4 v4 |  X, h3 X4 w
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
+ \  S3 p3 `0 ]2 m1 t0 C: c% y  Z0 o* p+ V
◆ 了解J2EE中的技术术语的含义。 * q+ c9 z  J% d! g$ J( L3 M8 j$ P
1 s" j$ q6 s) q* ?
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。 % j. h4 z* ]6 I& ^

$ @7 Q4 ^# h& T* i◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
8 r! y* m0 O" o
& O9 B! ^+ j4 U  O' ZMVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
. P) d2 C: i  p
1 }1 Q( F: G: P5 {◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。
& D1 x8 s3 M- `/ m5 ?1 \% k- U+ f2 M# @
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 & O# Y8 g, _: F8 }9 {  z  {0 z
! I  N2 V3 l4 N0 y0 G1 n) c
◆ 学习J2EE下的各种技术。 - Z' b( f# G+ _. A" x4 ~1 O

$ s1 D# g7 B8 `  C; |在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
如果我没给你翅膀,你要学会用理想去飞翔!!!
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-4-21 17:32 , Processed in 0.416004 second(s), 52 queries .

回顶部