QQ登录

只需要一步,快速开始

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

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

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

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:33 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本文选自:开放系统世界——赛迪网  2002年12月18日 ) f* O1 C% F# }. D8 Y% z2 S# p1 W5 ]
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 , p) \5 W8 c' p3 l4 a9 e

9 C/ d. Z4 F% B我在学习Java的过程中主要围绕以下几个方面来学习: + B( v+ k# v9 s' ~: Y

- b) D. e2 p$ Z/ K1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 # C' l# ?3 g& l. |- z4 C, N" H3 e
9 A4 @% W' A+ s; N* `' z: {1 X
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
3 I" s* e6 E, @& D+ k: t1 B5 ?0 f+ h8 A5 j% s8 t' f" S! o
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
" h" f; t6 h0 U  \# k  W$ A1 T& c1 Z$ \0 r" U7 Q
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 8 Q. y1 D, S( @) `- o- d9 Q" W
/ J3 `4 }" ~" @# Y
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
! \5 W& H2 h5 i! z4 Y4 J* s( V! o: u& F1 L

1 i9 B" \8 S7 h; q- V3 b2 j5 B7 t8 L0 e<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>  B( g, [; X2 ]8 L8 m- n

; I! Q# x! w4 ^+ }- }要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 0 d! l$ H( g  w  E/ K

* q" U% y; K2 j6 c% o# f) k可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 . [+ w3 j8 I+ Z0 H* i

% _2 Q6 T3 X+ `% C" k0 I解压安装。然后,进行环境设置。 # n' b. D2 }# v5 L4 Q

3 _1 _, |% P* F3 s$ l- a% z<B>1.对于Windows平台要进行以下设置:</B>
0 o0 G8 {6 _6 O2 k3 q& u  K7 j% P' i! `: }" A( I
<CCID_NOBR>  `% J5 \) [& L1 U  U: I6 r1 }" K
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>  ^8 T$ u* h( E5 v8 ?
& J. b4 n. n: Y7 U
<TR>
, y: g& ^, v; |6 G! E" N<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
7 F6 I7 S2 u# o5 M0 J5 I& Tset classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>" T  M  i2 @. ^4 o5 ?
& E: ?7 c2 v9 g% u
<B>2.对于Linux平台要编辑/etc/profile文件:</B> 8 {4 n! Q8 t7 H% F

" V# Z$ v; t. [$ o2 \<CCID_NOBR>
+ u! C# t9 e: {. v* z8 |<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>" j6 Y$ F5 B  e- s3 E
: B( D* ^; _" ]1 i/ q
<TR>
0 j+ q. z4 e$ n) f- K8 a+ z( q1 b<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk3 u1 q2 r+ h! f1 ^# l, X4 r. O  \
CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr  ) E. n% W. G5 r" I7 b7 S, ~" O
-e/lib/rt.jar:.
1 z* T+ `- {; [7 Q$ E9 UPATH=$PATHJAVA_HOME/bin
7 s3 N# D0 G7 A( Y& m$ h# r' c  Kexport PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE   
, Z7 K. m3 Y8 b0 d1 qINPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>& f. Y3 \' U+ {. m& b  z& O# H. X

4 [& ]: ]* K$ q3 f; U最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
2 H2 z* g) j% N; j0 K) [# Y
  e! q3 E# h4 p下面介绍一下JDK的几个重要的命令:
; Y( u6 j& p0 T. v( z
  R, p. r6 C- \; y1 o( z◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; 5 v5 N  w) O5 k# \4 l7 j" ^, q
$ ^! z7 U- e8 q1 _2 n( s
◆javac 编译器,由.java文件生成.class文件; 0 f/ [( ^. b5 V( R! N$ |; K
5 \! e5 v+ D' C( i; I6 r
◆jar Java压缩打包工具; 9 @2 q  i; }4 F( H6 T4 E

) u' D* z4 U: o" J◆Javadoc 文档生成器。 4 s4 C: g' D) x# p0 w- g& O

, M9 w5 F; V% O" ~: l3 x  I4 ^最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 4 R# o: E% Z7 n* S! f

3 N. [7 N: C8 ^4 p& l7 C% I7 [5 P# ?' X0 a2 j8 Y
<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
7 z& C$ A0 y5 T1 `$ S; q/ ?9 e7 w7 e! S8 l; H9 b
现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 5 }2 n7 ]0 _( L5 l
# _$ L% \2 V. |9 y7 s* D
<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
( }* Y8 S/ q1 {
% a( m6 b# M- N) |! F<CCID_NOBR>
# Q4 ^) l/ H8 l<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
6 Q. P/ N( _& `1 v* e' D8 |; ?+ A' ]( N) V3 ^
<TR>
* V% u" c. H9 f2 ^! T2 t<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java6 D0 [: M) V9 X* \' g( H. W$ f! r0 V
  public class Hello{
' y5 R' f) Z7 s+ J( h        public static void main(String []argc){
8 ^/ i& Z( _' `1 v' O) p                System.out.println("Hello Word!");
0 e  I' Q, E  Z1 Z  {$ ]5 i1 @        }
' \* @+ L& j6 c0 C  }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
( |: V' v* w; `( F3 q+ v- r4 u$ w' V& Q" Q- O
<B>2. 编译:</B> " u! I5 [8 ?% ^+ O: \( q

* a9 e$ M* N  r" y2 Z( h' R<CCID_NOBR>
7 M* O" Z1 B" h* u9 L* f<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
% n$ t' u" Z6 A6 a, I0 Q; `& h2 y# `5 {5 L' A* O* v9 J* [5 ~
<TR>
* K7 `5 B! w. R: a# S<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
( u/ T7 V9 {. c! z
) q8 x6 I; x) M<B>3. 执行:</B>
) y( Q& Y8 K* T+ T9 R
# ~' R* j; S) L# ~5 t<CCID_NOBR>! T) x- v& N5 a5 P
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
* g1 d* g6 B- w' z2 v- k% v$ n0 u* g- U! N: S; c3 w! G( S& Y5 O
<TR>
$ N# Z1 J8 A% f2 j: @5 a, i<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Java Hello# f( ~% Z0 B  ?+ x& a1 w% `, g
     Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
4 u  E! G) X1 ~% m0 X* K2 `
( X( x/ @' U! N" v& h3 G  ?4 H5 S成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 4 `- H; ]* J' J" ]7 v# P- U: T
1 v3 C6 ^9 v) s1 W, B6 Z
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 6 f+ f1 Y! M9 s! @
* @$ s. a# F& z0 u  v. l
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 . ]8 U7 I+ F4 |7 H; O" w
" p: J: g8 C& o4 }9 w
, \  k  Q) s1 P! @/ s8 T
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>8 [0 d, {# p, v. h: f

/ P# T; u! Y& a; B6 R如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
; I" e/ s% ?$ v+ Y
# B. l  |$ ~% c( T<B>1.Java Web编程</B>
, Q2 b5 G$ ]: R
1 B# B9 A& v+ _: {% K% n对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
% A: u1 O( @1 _- t) {* J
0 H, w7 j+ P" H8 X2 }6 z<B>2. J2EE的学习</B> 5 V3 m. _% g$ T9 n! p

! K/ d2 f5 Q+ _, }5 |J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。   C0 m$ o& R) `, G) I, g: X" m" J
+ q2 Q4 `1 S7 p8 C; G3 D" k
◆ 了解J2EE中的技术术语的含义。
( f; X6 H1 ]6 V) O
) k% ~& Y0 {( F0 B1 n我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。 / D+ X3 i- t/ U$ a9 t  \" U. E
( C1 ]% L' l  n0 m
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 6 J3 }2 s0 ~! H3 W
2 q1 x4 H2 H* `' ^* X
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 9 g- f0 T' E3 e" ?
. K1 @1 [& c  b( Z4 ~( U4 G7 x
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。
: F0 O  u4 e5 n6 q) F5 B/ O1 q3 N# I7 P: g4 n
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 , P; x3 ?8 g7 E+ u9 {8 E
. \* A( T0 c3 Z; L- Z5 v6 e
◆ 学习J2EE下的各种技术。
3 W' v2 w( b) J$ ]( O+ T' s0 r/ o& X" N' F" D- 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 12:52 , Processed in 0.402139 second(s), 52 queries .

回顶部