QQ登录

只需要一步,快速开始

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

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

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

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:33 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本文选自:开放系统世界——赛迪网  2002年12月18日 % s" g  |# a7 g$ T3 b0 S1 D
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 5 Y7 s& C# F0 u/ ?: _

0 _, ~" w3 b6 n我在学习Java的过程中主要围绕以下几个方面来学习: / m0 j  D% [  g  E. `/ _5 e2 A& L

( x0 W" e' j5 m# d0 u0 p( B1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
7 K3 g: F. g3 _  Y8 `; |, S) I- x9 A; |) g* z; J7 V+ k6 F
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 2 }. n. Z4 X3 D

- L& L( |  M- X  K3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
, n9 U: ^8 Y( M) R; T" y( f, e! @* x2 Q- s! h
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。
# o' a  S/ Z) i3 r+ L7 G2 z& R/ v0 I+ K) e. W
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 & K% U# Y! z7 ~6 K+ P
- ?5 u7 h" u' j8 }0 ^8 k

% g' u1 s6 F5 F; U- R  F  i<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
  J3 n3 x  @! Y! p
, V8 _9 x& v+ f  F4 H, s要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 ! \2 D& r$ @6 \

1 |$ v0 D+ z# I0 n- Q3 _! d' R" u可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 ' H, T, F# w9 {& ?! U+ U

, x2 t1 h& d) [5 ^. m解压安装。然后,进行环境设置。 " q( J- E6 o; }! }; U- h$ ], }
+ o' G: e! A7 ~& k
<B>1.对于Windows平台要进行以下设置:</B>
/ ^+ A# A5 U9 N3 ?& E. R  M5 i8 g8 U' b3 S
<CCID_NOBR>
" v% i5 A: H) f4 d4 ]' K; D<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
. @8 Q, A* g9 @* Y
, D$ I/ |6 W# p' }( V: U<TR>$ D1 }, h/ R+ I/ i. c# O
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
, M3 L+ @# U, R# P: wset classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>4 y8 m8 i1 @4 p5 o
# y+ w% h" C9 j5 d/ }. v0 D  n
<B>2.对于Linux平台要编辑/etc/profile文件:</B>
8 V8 A- G. h2 V% {
. Q1 @9 P' {' y0 c( v6 s: l<CCID_NOBR>
  b! ]6 C+ U0 \& m<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
  J, j. ~4 _1 K8 }
* j6 ^% X; g! f% Q( [9 [, U<TR>
$ F4 D+ p0 k8 y6 w! k& L<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
5 i/ e3 O- u7 v2 W2 GCLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr  , {/ w9 {6 f' K  h" t+ K  b
-e/lib/rt.jar:.
' o+ \6 e$ G+ K2 [; r$ o- f. pPATH=$PATHJAVA_HOME/bin# u, ]7 J- l6 u) l
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE   
$ H3 q8 p1 G* w+ X) F; XINPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
7 Y# P4 h5 b& w
1 x1 V4 N! n" N  W" V! J最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
: s4 A# o; w- a/ z$ e
' E1 z3 Y$ m( Q. q  {, v下面介绍一下JDK的几个重要的命令:
: i& j0 e7 [3 o6 J
5 ~/ b1 q0 X: j% w9 Y# ?◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; 8 S" L0 ~+ e: R8 y; j

- D9 N! E+ {! z7 }% D◆javac 编译器,由.java文件生成.class文件;
. D! J$ x- b! E; i. z/ P1 x+ g' ]9 F
4 G8 C* o9 V9 a, J◆jar Java压缩打包工具;
% i8 G# |8 ]$ o! D  Y- Z$ M  }$ @, }! D' }
◆Javadoc 文档生成器。
0 ~* K/ N' ]4 P# ]1 @( V$ N3 W) q1 F8 R( h9 h2 P
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 $ O1 B/ g- W$ m8 R$ [

  k: |: {, `6 G1 ^( x1 [' z8 M9 r8 ~, K. ]8 ]
<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>  I/ s3 |+ A+ B

* Q( T* b% Y2 ^% x) R  h- h" U现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 ( S, F6 l9 c1 K9 b. C: ?
- A4 u2 F! L5 @. O! f$ G- N
<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> & c% a2 L% K  l- u1 }- ~( o
0 h7 ]9 o8 r& W+ B! i
<CCID_NOBR>
6 X9 W0 w3 j' [5 O7 s9 u# h1 D7 m<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>, e4 ]& a4 G% X) G: S% _7 }

+ c6 [* K$ }* I<TR>$ @5 p, t" R4 t& ^$ E* ?/ \+ d
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
7 z6 J/ q$ o+ R; \& U+ ~  public class Hello{
# @1 x0 }6 t+ m( I) f        public static void main(String []argc){
, u# k8 @" U( r. F0 Y/ I                System.out.println("Hello Word!");, `( x: q: c: L
        }
" b& R3 F' T% p/ S- q+ v  }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>( x! c; G+ b+ U6 N& ]

# y  ?" O/ u" I& D2 Y1 e8 B, x<B>2. 编译:</B> ( R) c+ _( _2 {
- }* v; v. I1 e' v& Q
<CCID_NOBR>
. i6 v$ X: ?. y3 Z5 r<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
9 q$ K& m7 `7 D/ D) V; }8 N  z' @* F9 f( f, Q
<TR>- |, R" Q* f6 M: x# O- x
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
8 M$ z) D7 w, D. ^8 E
) n2 Z4 C$ a0 O<B>3. 执行:</B>
  a% v- R/ J* g3 `) J3 i4 b0 s2 b. d4 ~9 }4 Q4 X1 @* W8 i
<CCID_NOBR>, o0 x) S+ Y& m4 ]
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
) C0 ^$ q5 ~0 {$ O: N5 t$ A
+ A' D" l" F2 G. I2 R8 F<TR>
# ?4 U; c- \7 _- w1 w<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Java Hello
6 d" J, C4 ]% U. T# m" K     Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>& F: a4 i' z0 w9 n2 s  V# v
: b( y7 n, w: j# B. M4 E
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 " k1 n+ p, x5 x" V/ y

* L( m8 b: {" {$ v" D& m学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 ) C2 Y! z( z. v! o( H9 k
! D  c, v. r5 p( }% U/ N' ~
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
( S; f1 M  N4 ?( b" t' q4 r+ e' V+ o' |3 Z1 `+ H4 D5 H8 s9 K

) k& s# A' d" D<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>
# {7 s6 Y' r+ Z3 d5 Q; R# T; O) B& K2 J+ o! o* n; w+ u
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 # \1 b* v4 d2 A6 P- \: D

% z2 j  J: B* s<B>1.Java Web编程</B>
/ M! @; [) e; d% {% @" B
0 e" J) I% F3 o8 t. t% W% Y5 d. y对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
6 Y8 g: ~' u3 J) y* X- @( j) p' j5 N4 }) B) ?
<B>2. J2EE的学习</B>
" z3 T/ Q' T" _  {! w1 w/ _
8 u/ \1 Z' `, u& rJ2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
$ O+ X3 \3 ~, {: @- e6 B: V$ D' t8 H7 {0 @- c8 H1 N
◆ 了解J2EE中的技术术语的含义。 * x) C, e6 V" c4 P

' z. C1 O1 l+ j我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
* h' e! L, D- M- y1 J$ ?/ s, T; N& u$ M
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 4 @6 W9 J; a! Z

+ P& `  ?' A9 _MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
. T* P( k/ ?+ |8 E3 ^, A
. @& @3 y- a1 M0 l7 Q" _◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 $ @! y' x  E  [* E4 _
$ d) ^/ v4 i# X$ f  d! }5 z
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ( Y4 M: r7 n* O
% h: k3 l0 b2 D4 J, B
◆ 学习J2EE下的各种技术。 6 y) Y0 J" F+ L# C) W+ m
6 l: \9 [0 X$ z% V6 J
在有了前几阶段的学习后,可以自己搭建一个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-14 05:00 , Processed in 0.410623 second(s), 52 queries .

回顶部