QQ登录

只需要一步,快速开始

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

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

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

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:33 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本文选自:开放系统世界——赛迪网  2002年12月18日 9 w+ k* n+ q3 ~* N/ X7 _
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
* U9 |: U! w2 I9 }5 J! l
* }+ r, d% p) `9 N; Q: c4 \我在学习Java的过程中主要围绕以下几个方面来学习: 9 @% @. O& Y/ W1 r1 ~
5 Z/ Y& T7 r# T
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
6 u  o! k( _" _6 K9 [
% ^, @& B& }4 H0 {" J3 f" n# W. l2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 8 i9 N3 }0 [9 j$ x! r

, V8 D; R2 u+ `. S9 B5 o$ ]- Y3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
- N1 m7 h% a, I" G1 ~- U! F, X* H' h' J/ k" j" L  f" j! p
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。
. Q7 b5 |3 ^+ Y
, c# u$ C1 k% N- n学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
; ]5 D* \9 g' C. D7 `" E+ k/ j+ _$ T# u- D! ?; w8 H

& t1 T0 e% E" \1 s3 c3 ~, _<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
1 H( u  U' q/ @0 T. t8 M3 y! d' D2 N* w) {' B
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 ' S8 S, ]5 _5 Y( G, G% e' f
; w9 X7 `# t/ ]' O+ e; h: f' n$ J
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 # ^/ x- r9 s; U2 ^2 Y7 @
. T& D3 A1 L8 J' l
解压安装。然后,进行环境设置。 6 c$ t! V/ _0 r" R4 I
! q8 z: b) J4 a: ~
<B>1.对于Windows平台要进行以下设置:</B> 7 E7 B2 Z3 A2 A) t: Y

6 a' }) D0 f( k$ K2 `<CCID_NOBR>. F- E# Z( ^  p6 a5 ?7 m
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>& w- f9 l, C3 }6 v8 `
% ~) @# @' Z2 k( g
<TR>0 V& F) D8 y6 K% H5 \! j: M
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
5 L3 \; P5 S. K" T, vset classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
, J; B5 m% F# r, U. V$ E! D* {5 S8 U9 I: l) z9 H" _+ z& L+ S/ Z
<B>2.对于Linux平台要编辑/etc/profile文件:</B> ! w0 S* W9 f* a1 L# s. m$ j+ }
5 u9 {# L; Z( q4 d5 g9 e% ]  I: T
<CCID_NOBR>" \2 z1 y3 G) s8 Z
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>7 I: |/ N" e) {/ z/ X+ u

  L* c" |, ?2 _  y<TR>. v5 d8 u5 T( Z7 Q3 g1 c
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
2 `* y% k- |6 U( FCLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr  
+ ~3 G  C7 M) _  R6 U  x-e/lib/rt.jar:.
' z) Z* j8 [$ ?2 BPATH=$PATHJAVA_HOME/bin6 [, S# V6 f) G0 a  z& {# c5 Y
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE   
% s1 I1 s8 ~3 D0 h& k% O, `8 _4 QINPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>/ ]# j: D8 J: H% d4 ^/ p- }
; M, u  Y9 E, @1 c  Q) g
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 9 S: w7 Y! Q9 D8 z5 U9 Q$ M' s

) @4 D) S# H. j  V下面介绍一下JDK的几个重要的命令:
2 r- Q0 B6 d; L7 y% d3 }8 A, J5 p% r1 h+ p
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令;
1 ]& `- c" Q* y* N
9 |* ?" ?+ a9 Z& \- Z& t) I9 Z◆javac 编译器,由.java文件生成.class文件;
( s1 p# f: b2 E: d) u: o3 b" b2 |7 O: k2 f  E
◆jar Java压缩打包工具;
6 v* |4 u4 ^. y" K! V
% M# k  E" G6 t1 L; h  o◆Javadoc 文档生成器。
3 h. b+ |1 h; m0 U, h1 h  z( D2 A% |; I. [, d7 C
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 ' ~1 |( B# e2 i
; q: g" f9 M0 p7 w( n5 \! y

2 M' l8 {: ?! M3 v$ T4 x2 J, z2 X<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
9 o4 l( q) b) B; B$ Q
( k5 u1 N' H  M% f现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
) r2 w  A% @; E& Z  A6 s# P' h" m
<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> 7 U% H$ Y, o3 q2 K% @9 `

- I1 a) B) R0 F+ Y. O3 v9 ^<CCID_NOBR>( _' b+ o8 A1 R" w1 h, |9 g( E
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>$ J/ b5 |4 d" y6 c9 P! H" N
+ ^& [+ n- s# \/ r/ r8 ]% c+ L( @/ T
<TR>
. B5 _/ t8 ~# h% c% a<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java* Z' p; \2 Z$ [2 x' A3 I: g$ G9 |
  public class Hello{
  [4 O7 L! d+ S$ z) w4 U" ]        public static void main(String []argc){5 g0 e6 M# e5 D: m: ?' {/ F# Z8 r3 [
                System.out.println("Hello Word!");* ]; `( j, }1 d; A6 X
        }0 ?6 F1 K; K- C/ a( s0 h
  }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>0 R! }8 B6 w( v" X+ x" w

1 p! C) Z' G. F; o<B>2. 编译:</B>
0 J" @; r9 K* H; T9 G
  b$ _# o& S0 I) a<CCID_NOBR>
9 O. @2 P" F; R<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
# y% C( c2 I* A0 `, G+ S+ o0 K1 D( b4 A% U' e1 ]) o6 ~
<TR>- R! Z; \0 I+ L8 y) Y! D
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>1 i! ^  ^# J9 e) r4 l

2 N  o$ |$ R0 }4 K<B>3. 执行:</B> % m  z) n! I. p! J# ]5 |8 \5 M

# k0 U" l; i. x( L( x<CCID_NOBR>
2 M: \9 W- K' Z0 X<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
0 e0 e: t7 b! |. ^) f+ J& u2 r! M6 _
<TR>
& A- p' Q6 q/ y( R* e<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Java Hello
8 Z& n+ w1 y* g3 c$ W3 @2 `; @+ A     Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>* G) p! P# N* q) v; r0 b

# N% z" t( Y- ~6 z1 e* O成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 - r; q" w) j+ [. _% o/ B' K
/ ]8 \  G5 m9 }
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
8 e4 Y- a0 E7 k: U: P/ Z
2 ]7 P0 q1 d' g在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
1 {9 M5 P3 c7 @) J- ~+ w8 T" c8 e2 R) q: k+ V- u

4 y2 j( k9 f! T<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>
. f5 U( _$ G' r$ a& |+ j' R9 G5 Z
( m- u4 [5 L9 x/ Y$ v5 x) t如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
+ k$ }5 s/ C. i' G$ R3 T+ L9 H8 p% }4 C2 _- `0 H' f
<B>1.Java Web编程</B> : x, `, W$ u9 ^( U0 o7 \

+ S2 C( j! [$ M( o: O/ J对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 $ u7 G% [- b3 R1 k, W
  b) m6 y& e( v8 J/ P7 t: V0 Z
<B>2. J2EE的学习</B>
$ d, w, x6 {  t% w. D" c2 m7 q+ m  J( j6 x3 A" f# h
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
- \; |& Y! b) W$ V* J6 S! n& Z
! |2 V& s1 Y/ D* X& ]$ L◆ 了解J2EE中的技术术语的含义。
* [& i$ E+ n  Y/ [9 f4 v8 \6 h0 g5 O. g8 |
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
/ U8 d7 b& W" U' ^' C% Z8 s, Q5 X) i  w* z! r% l# n; t
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 0 q, b+ K8 p( w8 M. D9 b2 R

. e5 j3 q( I9 l6 f- A/ U7 E( JMVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 0 [" S' o; b  `( _3 y
, x. F4 ~) i5 q) V2 |
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 4 n; i8 ]# T- Q) P/ x
! d( j! Y0 g. \( Y
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
* O; E& D# ^8 j: [9 X1 E1 ^. x1 r. G3 P
◆ 学习J2EE下的各种技术。 - ]9 R" ]1 {& T+ L

6 K! C- k! D; B- b( v% N3 l0 L在有了前几阶段的学习后,可以自己搭建一个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 22:25 , Processed in 0.298706 second(s), 51 queries .

回顶部