QQ登录

只需要一步,快速开始

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

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

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

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:33 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本文选自:开放系统世界——赛迪网  2002年12月18日
6 O3 z! m* K, }% g  H" ZJava总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
3 b6 X# f: k: l& f1 @
/ {" x; z$ w/ a( R$ @# |. R6 }我在学习Java的过程中主要围绕以下几个方面来学习: 6 g3 Q4 M7 _$ _
1 A9 I2 d2 e6 ]/ ?
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 3 R  o' ?3 l# y8 x
8 m6 H" E5 w, O1 z- w  U2 j
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
6 |+ q( _8 v, u3 F% ]( @+ _- U/ v# A: o$ z/ O$ i* }0 ~# ~
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
) D- y# A5 v, k, w( @1 i8 G
0 X" G/ A' [5 M1 ^* D0 L$ K/ h4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 3 e- V4 L9 U* r/ n( j9 `
0 C: T, b0 M: `  `
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
" |/ y% _; w3 s$ @* y4 z0 [" k. [" |5 p9 f5 ?" i4 ]' I' Y

" E' T2 J1 X7 g4 c& N<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>) f) p" V  T* t$ l5 p, @
2 Q" i3 W" \% O9 b) y: T. C- C
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 / d1 {. J2 t* v# t- m' D9 k

0 \0 S" H6 R+ i+ D" F可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 " j% \. L) V8 `& N' a9 |! j  w

, I8 z) m: P& ~解压安装。然后,进行环境设置。
7 Q! I2 \/ K( ~* o
6 B7 S7 t. w3 C  a<B>1.对于Windows平台要进行以下设置:</B>
5 F; X; J9 L: Z  b" y% D
. ]5 C  ~% J+ K0 f/ Y% O$ w<CCID_NOBR>
  ]$ p1 y( K/ A( m8 Y. J7 |<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>$ R, {4 o- T- U5 g( T

+ b; V8 Y9 W# J$ h, r( K<TR>* S2 V% m4 p" X4 Q
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command2 f+ t/ I- T' V  [$ G- U
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>; u) Q5 v" E9 E4 n
, @0 l; f( U6 H) g  B$ ?4 ]
<B>2.对于Linux平台要编辑/etc/profile文件:</B>
% V+ D; N+ |6 {. t7 t- W# _" @8 ]! \8 n: }
<CCID_NOBR>* I# y, I" Y: ]- Q+ a: D" h8 P
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
# [4 @7 Y9 g1 R3 ?3 v8 @; i
4 Y# y* h! c3 d9 n, x<TR># t9 f0 R0 ]3 x  u  h- |9 Q; E! t
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
8 o" ]- V& R# U. d; @2 QCLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr  $ D7 `2 G0 E8 V8 c
-e/lib/rt.jar:.$ }8 i9 ^5 o) q
PATH=$PATHJAVA_HOME/bin
6 a7 k1 N( y4 P" A% Iexport PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE   ) E/ V6 ]( n# O. X. R# V* Y, p
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
) Z8 s1 T! k+ S$ x( l4 w: v! `4 E( R9 @* L8 O
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。   }% `5 m4 x2 Z% F9 |. w+ Y0 G

( h0 x" A& t$ H  M  X下面介绍一下JDK的几个重要的命令:
) B) R1 }& x! a+ Y
' ?" m8 v1 E- t4 _4 b& `/ v  u" ]" w◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ' U* ?: |7 z, b) U/ k

* U* l5 \, b- u0 S* H4 X* S◆javac 编译器,由.java文件生成.class文件; 7 a' Z4 z3 O5 C5 _6 t

- y5 w$ b  d1 P7 g6 `+ f◆jar Java压缩打包工具; 3 i$ F' o6 t4 B/ [) Y" R# B

  ]+ b% U  L5 a; |7 W5 d2 d7 V; j1 h4 N◆Javadoc 文档生成器。
9 t8 o. `3 X' n* v  i" S2 q
# ]9 e6 o# [6 M/ g% i" D最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
/ j9 l7 T4 q( {* h$ y" c; c. @& Z/ D

8 t  H# g; e" W7 f4 v<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>9 T9 i( y3 A( G. v+ T  w; m6 l

  I' E3 C) ^+ G" I# t现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
3 A! s9 t) c/ n* B" z
7 N/ k! x" Y5 m<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
1 Q  L9 @6 b, {8 ?! F4 l3 G/ R8 N  B% ]1 X# x5 t. S
<CCID_NOBR>6 {5 ?. p4 j9 P1 s2 }
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
* f9 A$ J- C# C5 ^- G* n: R2 |3 r* q& C% z' ~
<TR>
8 ~  E6 l0 t9 _. A0 z9 e7 {<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
+ G1 s4 A+ t: `9 o  public class Hello{
' O2 a: G4 S9 i8 C        public static void main(String []argc){  ?$ \, X& g1 K) ~, H5 u5 s; `0 ~8 m
                System.out.println("Hello Word!");
9 F. n/ |6 j" `( }6 _        }
, w0 A6 {+ \5 E* T, u# W) _3 Y2 n  }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR># G( k" m' h* p7 A  f

6 ^, Z) D* M" `; i<B>2. 编译:</B> ; Y+ Z/ c; ^9 w. V! ~" P* `$ _
1 `0 M, @8 \; K) X- q- u8 k
<CCID_NOBR>
# d, O9 q+ z% T9 g. l, X<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
) j8 e2 H7 X2 L6 @2 Z' o1 q/ o: u" Y. f  Z$ ?, V
<TR>+ y" G  @" r2 {" b) P
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR># t9 q' w) T% l4 G9 k) {; p

3 _- D9 j6 z2 X% \& K<B>3. 执行:</B> ) B) W5 F+ k! q1 L6 j4 @
3 i' g" Q( g! i. q/ u' J( w9 u
<CCID_NOBR>' w3 Y- ^1 q0 V4 l' r
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
: F6 a0 |# L  Q% O. v( A
  Q/ w! O0 a7 R0 U  b- N<TR>& _" s& [& V. V4 o0 G! U
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Java Hello. P6 V9 S! v. o
     Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>: [- Z) C5 V7 H1 h4 [* [
3 i4 ]1 `3 {& [0 H2 f+ q: Q
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
9 i8 R1 E- k& R; |+ P7 |- C/ T
: u; I) l. T4 x' f6 o( b$ a9 A- p, z学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
3 ]' t  k' Q! {; [% {; m7 p) H. T  w1 ]
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 4 q) ]$ Z; b( Q0 H+ r2 K) P* a
; v8 Z$ c6 M* [( U8 q( C, h
' k9 w% p5 X! U5 f: N2 _) W0 u6 |
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>) [$ y! q/ ]5 c; y7 w3 i

, K9 {8 }: n0 J3 P如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1 V/ l: d: y! o) a8 c3 Y. F. @
( U# \1 g5 r/ ]! X
<B>1.Java Web编程</B> 8 h# L( W5 H# U0 I$ {4 _  r% E

- _# p, c# F' i& l+ H6 {. [对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
# x( w5 w; Q2 F/ p1 V3 a% x# _
2 d+ C) G1 c$ a( H* y: M<B>2. J2EE的学习</B> 8 r4 z& N6 h8 w+ c4 q( g) \
; _; ~6 w3 t! C
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
5 H& f$ [1 \  F
& `! M9 @5 f+ G2 I6 z◆ 了解J2EE中的技术术语的含义。
/ u# m; e2 |& t$ ], Y
9 X1 }4 r( i' D+ s9 p! [6 [我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
. r" W# @9 p% c& n. X$ j8 E9 z8 L: r0 m% ^$ o9 t3 H5 u/ p
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
6 Q/ e2 o1 t, y/ a4 @3 ~( O: B5 x- C9 x, h# C
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
5 @4 F- Z0 r% `- d7 r  J) i
2 F0 [: L4 j/ Q- x; i! ^  Y◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 9 z0 w. T' j  ]+ |- t# C

7 `5 Q3 @; B$ N. e' Q6 a" Y: x* |平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
6 V# T/ z5 W. G+ T  c, D
, I( t% b% J% ^$ V$ Q, q7 J$ u◆ 学习J2EE下的各种技术。 ! ~$ U1 W/ f! q8 M1 r
2 v, w. M2 M9 I  g% b
在有了前几阶段的学习后,可以自己搭建一个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-10 23:28 , Processed in 0.445066 second(s), 51 queries .

回顶部