QQ登录

只需要一步,快速开始

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

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

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

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:33 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本文选自:开放系统世界——赛迪网  2002年12月18日
' a/ X9 k5 @+ v; e+ Q5 LJava总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
6 \+ V. E8 u- {6 n: h; B
+ C) A8 [( j; f我在学习Java的过程中主要围绕以下几个方面来学习:
( _1 z* L5 v) Y; V; c- j' z. z4 f/ {9 F/ ^+ E- n
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
/ a2 @2 ^$ u9 Z6 L3 s- r. I( _2 b) P5 i7 z
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
$ d1 ?/ a' b8 s
) t1 \8 i/ `: S# ^2 S3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
  ~) B: `- w1 v
7 p8 `2 W) `; c  ?' Q4 Y4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。
' \0 }1 w3 p2 n' s. g: a- e( E3 b
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 ) g" I$ W2 o0 L# [7 b

/ e, U/ d9 `6 c6 X* }* A$ \# _  T* a) @' \$ P: ~
<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
, E; m- h  w) `" R% t# Q$ `* @1 @1 j$ ^; z1 J
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 9 d. W3 q; |6 D0 Z0 _
4 @. n2 g: X8 k  g5 c
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
4 L0 E1 b' O* t
& d% C& }, [, \解压安装。然后,进行环境设置。
# h. E  h/ K5 p% F  q/ O& a3 w6 @% i: D( i0 b+ @: O2 U5 `6 q7 p  K
<B>1.对于Windows平台要进行以下设置:</B>
! E7 g& L/ i3 j2 f! z
4 |5 y# n8 p  L7 N& \<CCID_NOBR>
( \% H' H  c/ c+ U<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550># X( J4 ]- w* K; h0 Q
3 A$ e! w5 h6 V5 h) {" J0 J
<TR>
5 Z$ Y/ z: \- q( r<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
; l# G2 ^, y8 c6 M' y0 V, |set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR># [8 [, K2 r* \3 s
# y/ ]& G+ \& q% G- U
<B>2.对于Linux平台要编辑/etc/profile文件:</B>
' [9 s- ~0 e/ L( U" s* ?" e+ ~
( Q" i4 N4 u/ p: R<CCID_NOBR>
) G9 D# R- b3 k2 }. @) n) f<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550># T7 ?* U+ i! K7 z/ G

- F. H& I) N) g5 }# ?<TR>
2 z2 }$ |/ U% o8 d+ Q" ?<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
0 Y/ h9 l% u# C, LCLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr  + B4 ^, X0 A4 c# d2 k0 @
-e/lib/rt.jar:.5 G1 D: K. K3 H# d8 q9 w, @# u
PATH=$PATHJAVA_HOME/bin; V, q2 o3 k7 u% h; [% g
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE   
* L+ Q1 _/ o# [INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
4 m/ g! q& I; T" u9 }8 V; u5 c- \+ l: L
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
2 B. `6 m& A/ k7 u, z+ x6 I1 w; `" }  C
下面介绍一下JDK的几个重要的命令: 6 V- C7 V- D% U) {% @
. n/ J: L$ `" ?
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; 4 `8 r0 S* ~0 i: P- P
. j2 {9 |. W: Y$ I  `$ d
◆javac 编译器,由.java文件生成.class文件; % U, B1 ~6 f: }; i) [- C, [# ^1 c

" D- B) S1 o3 V' b, |  L0 a6 Y◆jar Java压缩打包工具; ! b! }% `. O9 e* h. u
5 F0 t. Q/ l$ T; t% O& a
◆Javadoc 文档生成器。
/ z2 z8 U. l" q
0 R1 ~2 Q* M. E3 C9 o# ^最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
4 h  V( }/ Z% ]5 S' h: t/ G) M0 k2 x' s8 c/ S  Y* v

! {$ o& H) T& y& j* N% m" E7 k' {<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
2 Y& K) O& `1 ~" `) U, K& G: C! V
8 A2 N1 a" ~& p9 j* D) |! q/ t现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 & I6 m. m: b9 e5 B5 m8 \: s

7 B+ Z  f0 a, X2 w" m0 l) T: s! A; ?<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
! T& H4 z6 M& j. C" p# C" ~0 h' d* N3 K- v8 G
<CCID_NOBR>) n7 Q9 b6 T6 d# g. r
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
% }. i  p6 H4 z4 f% i) y6 n1 n$ j, R0 E
<TR>
8 F( Q- M# t$ Z3 k$ |: Z<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java) w; }9 i5 S4 \4 [4 S
  public class Hello{! i1 _4 t- F4 d) V4 X
        public static void main(String []argc){8 j, [& l' y" J. Y
                System.out.println("Hello Word!");( C- P: ?/ Z* I' g0 V3 d# D" W! n9 `
        }: J0 w3 i$ b" h5 D& v
  }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>2 u+ n. b  s3 i+ m

- c: _$ Q6 p$ g! C0 r<B>2. 编译:</B> * t; \- Y$ r' j. Z
/ ?; H* m6 @$ ^- Y
<CCID_NOBR>
  b/ j* R3 M- }+ T2 V<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
: \( Z* m6 s7 j$ B( u; c& K
' I' o) X* Q/ [" t2 s3 w<TR>* b/ t4 a  ^' d2 q$ |) _' e) ?
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
1 H: E( m' |) X2 \1 F: M3 ]+ e/ b  |
<B>3. 执行:</B>
: l) {* ?5 C# A) r( ^( x; X9 L9 x2 {+ a" O) X7 [. [2 t1 c
<CCID_NOBR>$ I' `4 J9 L3 u
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
  k; w6 Y' l. `, x$ A
) m8 a& j: M4 Z+ ^7 V! ?+ B<TR>! O- I" z! O# l' F" p# {0 a
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Java Hello7 e5 s+ I/ \' s: c
     Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>& x+ T0 _+ h0 }6 x& _& Y2 ?1 [* J! g' G

0 D. R0 t# B* B  L成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 ; B- y; @6 U' F# c

+ b: x) m% V0 \1 j/ i4 g学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
' p1 n5 O* S4 M3 g7 j/ A) y8 x; e5 X
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
  ?7 Q, W1 J/ ]9 w0 M: f
" ~" b% }  G: Z0 q  n, s9 z# T( v: i5 I# g2 }- t" r. H% f
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>
& i' J2 `& E. N) e; D* T1 R7 k/ O4 G1 w
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
6 z/ t& Y# O. T; T* k( F; Z0 `2 b$ n8 }3 b6 L/ l8 t/ H
<B>1.Java Web编程</B>
+ E) I0 u% H+ B
. t* w9 @/ j/ Z. S" D$ {% S- D对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
: v! x* Z. A9 S! T7 {8 W9 ?' s. ?. i& h4 |- Q
<B>2. J2EE的学习</B>
% k) B2 r) m6 T% k! {1 h) G5 C3 ^+ ~0 |- e
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 2 k! A" h4 V$ G, \1 ~. [. y( Q) i

( ?3 S+ Y& W( @; @' y. F◆ 了解J2EE中的技术术语的含义。
0 K7 C8 u9 X( B5 s. Q+ G, M& R2 G
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。 + V9 s" \* l+ O& ?6 p4 c* P$ L: G

5 l& d' S9 R( ^# g◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
. Y, ^9 P& D5 j* J: [" @5 W. T( X% u1 {0 |6 l: l4 C
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
) p( N5 n6 i1 ~& D2 w
$ T- Z. ~3 N) I( S◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 $ W0 F2 j5 J& d  Q5 Z) q! M
! l" J1 V# D9 a
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
, u& E! d/ K: N% i
; Z6 m2 k: k# `+ \◆ 学习J2EE下的各种技术。 ! O6 f+ G* _. n2 B4 u

4 \# x( T4 g  s- y1 M在有了前几阶段的学习后,可以自己搭建一个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, 2025-7-30 07:42 , Processed in 0.268832 second(s), 51 queries .

回顶部