QQ登录

只需要一步,快速开始

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

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

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

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:33 |只看该作者 |正序浏览
|招呼Ta 关注Ta
本文选自:开放系统世界——赛迪网  2002年12月18日   N; l& y" A1 F! R! N* C
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
# v/ Y- u- S! ~  x+ {* Z) F& n; x* a2 V1 ~2 V
我在学习Java的过程中主要围绕以下几个方面来学习:
1 d+ W+ r, z6 H/ q* Q
( \5 h6 w% I. [# H: J; @* d' a8 R2 b1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 3 v  {" y+ Y$ _
" v8 ?& c4 q3 l
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
5 |6 H+ ~' l' R8 @3 K0 E; S- S- ~+ |/ S: b5 D* |. E
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 " {: C+ |) Y6 W! l0 b" _

1 l4 j3 `5 E0 E$ x9 `4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 6 d4 Z7 _. j: y9 }9 G  ^" j
: s7 w, I: q9 B. u- ~: }
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 ; t, C- `3 t) S, N( I

. ~3 i3 W9 B+ S! B3 f
" ^5 }8 i# l9 N4 N& e, z+ l<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
: b# x: P# Z2 ]: k2 S* ]$ R$ X- n+ Q! D6 F+ |2 W
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 9 l0 ?" j2 D1 D$ w6 Y

! q& ~) @' [( z3 b4 |5 u8 B可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
3 V4 E" K3 h* M5 z/ Z/ x# }
' g$ z' J0 W/ R% y解压安装。然后,进行环境设置。 9 H+ Z! M6 [" J2 o1 o( g9 Z

6 P. Q9 c* Y6 ^1 i) s<B>1.对于Windows平台要进行以下设置:</B> / {( m; z9 c- H! u' m" n1 N/ o
3 x5 i2 K; S9 |5 }0 W+ j
<CCID_NOBR>
3 H: T( b# q' u4 ?% l! t, I: K<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>8 e+ X# X# c' e( S- ~+ ~/ T- @
' s* _% N7 i9 N$ O
<TR>
: z4 I$ J9 Q* V0 ], W' z/ s<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command3 z# p# ^/ Q% p$ k( m
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>; }  x# `4 Z3 }+ W: m' F0 l' d
/ g  s( e9 C$ M5 I+ u
<B>2.对于Linux平台要编辑/etc/profile文件:</B>   a* x: E8 U7 `5 L
! Z8 v( ?3 ]4 F8 g
<CCID_NOBR>
$ ?; m7 ^* n! C% l3 W2 t  t<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>- b0 v3 T$ E  A$ Z0 B: p# j

6 J8 ]4 A4 H. ~$ g: X3 D# N<TR>; ~& R9 v8 F' K) g6 J" {. N- {
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk, b3 M3 D% R$ W$ r) ], a
CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr  
  v. D0 `9 [. ]! ~* E- C- {8 k8 r4 B8 g-e/lib/rt.jar:.) w$ e8 V' O* v$ h* f/ W/ W! i2 F1 E/ |
PATH=$PATHJAVA_HOME/bin! n, ]! q# Z1 X* p. r$ F, M) D
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE   9 G8 X* [( A  p
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>- c2 w# G4 }$ j+ K: e5 t
# \4 `0 T, ?: i4 n
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 1 ^  y3 M) N3 Q: d9 M2 N; N, P' i
- ~- y. L+ q# L/ r( q
下面介绍一下JDK的几个重要的命令:
$ Z/ Q0 E( p" a; S) S! ^+ y* G2 `+ [% Q  x& o8 y- _' {  O
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令;
8 b4 V5 X5 G2 p7 @) ^3 T0 P8 x
* @( A8 |( I$ g) u6 i: m- u◆javac 编译器,由.java文件生成.class文件; : t# T; g5 e0 [

' s' x) O0 X$ V8 e. w◆jar Java压缩打包工具;
# N- P; P" z1 ]2 p9 {& k0 `
& O7 a( A0 ]( T) c1 l◆Javadoc 文档生成器。 ) x$ h8 \. ^- `; [

, I4 h6 ~6 X8 q最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。   S- h; l* P, I7 J1 Z
( T: j; Y4 e  b& A
6 P/ y6 v5 z: Y+ ^/ X" T; n1 g
<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
8 i" F2 \) H1 Q& Y& w
3 C# P3 i1 [" j0 e现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
- n7 x, y, K0 H- ]0 k+ i( v
3 i# Q& F% B) k% N9 [  a" C<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
* e! Y/ \  S" a! R! `1 K$ m$ @% o: g, U, B1 E) O7 S7 L: D
<CCID_NOBR>0 ?# L  O8 P6 `4 q! n
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
& ?+ N# B4 E2 f4 x
* \0 Y2 I* ]. p<TR>) U, S: B7 e( [! S) r  i: d5 X& b
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
1 r' y  s. l4 Q* m  public class Hello{7 O' o7 H+ q% ]* T: r
        public static void main(String []argc){6 |' H2 w9 @: R# A
                System.out.println("Hello Word!");# s' B4 u/ h0 n' b
        }2 k- [& H/ ~" t4 i+ P- _$ T
  }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>4 f3 x7 A( L1 z; ~4 n8 J2 G9 H, k
  N! m7 F1 M+ H* r" Q" o, Q/ _
<B>2. 编译:</B>
& J* V7 ~* R7 R7 D. q$ X3 P
8 [& b9 B# F+ r<CCID_NOBR>
5 E& M1 S1 d0 y* E6 ^<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>. Z3 n$ D& Z/ [5 q# u

' z: B! J, I) T$ D0 k; x3 H8 F) M<TR>& P3 d# r$ h' k; R7 I& E( S, c& j
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>3 c) _9 S6 s1 E0 I9 }* u* ?

* q& a" a# Q" F, _7 A8 E<B>3. 执行:</B>
: J0 q" Z  H- V1 y8 `
+ P1 \( b- D4 B<CCID_NOBR>5 b! i+ s8 h; O
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
  \9 ^  N0 Y' c5 h+ E) N5 c  |4 m3 k- R: f8 `! [5 X  o
<TR>
0 ?0 g2 E( o" M/ K0 q2 B<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Java Hello
6 C- C( ~8 H5 _     Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>* C6 \, @2 O4 K4 [: `. c- c" v8 y

3 }& Y4 |* r) z4 j5 U3 R$ b成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。   {$ u9 i7 w$ `1 f; X3 z

+ M% ]5 g$ X# z/ p学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。   C9 z: ?. Q: z- f) N

  ~5 l. r: s( _1 x在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
! O8 R# ^3 Y/ x; N5 x' k9 V/ d0 x9 {- \

4 ~2 z1 e& F  T: |. p<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>5 C0 }& ]3 G7 `
( {$ ^6 ~0 E; u  r" {, u& S
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 5 S9 y- U1 {, W- I: G

1 W+ p3 Q- T5 n7 f% Y+ G+ [<B>1.Java Web编程</B> / P7 Z" U6 ~, k

- z/ F  S! `. |" z7 J, K! o对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
3 X! q( {$ ^$ f* M/ C! _4 I2 G% R* S3 C" j; j
<B>2. J2EE的学习</B> + ?/ i7 J+ W5 E1 S7 c3 |
% t$ x2 `5 }" c# L- |! q
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 , f. N, N4 E) Q, m0 W* U# `
. S8 T4 Q5 Z6 {& M) `9 L
◆ 了解J2EE中的技术术语的含义。 / Z9 H+ U1 m  x; q- \9 `

3 p# i) L% v9 W' B' ~+ r( r我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。 8 R( W. D4 a. Y0 d' F

# ~0 i1 _3 W0 d% E◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
/ Z( H1 B. z( l  |0 r' D2 h# x
6 h" H3 I) X, O6 Z: LMVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ) H2 u1 S9 F% k% t
3 y% F- S# G" i1 d+ C7 _' q6 Q
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。
* A7 v% l5 c* N; I. x. C8 G$ g
( b, }9 F9 |: I) ]; X7 B平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
' e  G+ ^% d  I* H6 ]' |  c, u3 B* |" ?# F( p
◆ 学习J2EE下的各种技术。
' Z' x0 ~$ ^) ]) l) E+ n
7 n1 @) p' u- `在有了前几阶段的学习后,可以自己搭建一个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-6-11 06:54 , Processed in 0.431687 second(s), 55 queries .

回顶部