QQ登录

只需要一步,快速开始

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

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

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

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:33 |只看该作者 |正序浏览
|招呼Ta 关注Ta
本文选自:开放系统世界——赛迪网  2002年12月18日 4 U% S) r( Z9 z; }# R( o" L
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 ( s! H* V5 v5 s% v5 v- W

+ e  J& I) z9 p( s1 f% J' f: V我在学习Java的过程中主要围绕以下几个方面来学习:
; Z* A6 E: Y& F& g2 i
; {' ~4 A. X5 y  S; M* h, |1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 - d# I4 z% x: ~# {. c( u! b; V6 t/ H

, ~8 Q! O9 K& V9 y2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
) p. y! m( I5 c9 P6 D6 Q  |! ]) E* P0 O4 }# X# |
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 . n5 J/ y8 M* h) P! I4 ~- a

* m/ @, ^# j2 o! w4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。
4 }, e" s4 \8 P& U* z, ?
8 ^4 O3 B5 d5 y1 Y# \* [, s学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 6 ]$ z1 x! K9 u1 i# y
1 s4 J) i2 p  k7 S
8 Z+ Y/ m! e, [( o1 G6 P
<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
6 n7 z7 [* F% b& Q# d
6 }2 y  S7 {* ~/ \+ v% [) c# o要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。
$ h) \8 V9 V. ~& @. c1 {, {
( d% t9 e3 ~+ H0 M' Q' |可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
' `7 S% O6 C% s8 X. f0 V1 O
; N! B+ c/ W3 l" ~; E解压安装。然后,进行环境设置。
$ C$ H: p/ [. d
: ]8 d! i6 w4 A9 d<B>1.对于Windows平台要进行以下设置:</B> 0 |4 g/ l, [  G! p2 M

/ Z' f$ l9 G' f2 c5 ]8 ^<CCID_NOBR>5 h, n& ?, i- h. M
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550># G, Z0 A. ~! N, k0 w: N( A- \* `+ j8 c
3 I' u/ ^4 d7 Q2 H* I( _! |8 z
<TR>. \+ P5 v: g( G$ |
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command& B  y5 B' U5 D
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>% ?& K# R2 d2 V- a* Y! k0 s
" y+ X, k3 b* \) l/ b) _; d7 Q
<B>2.对于Linux平台要编辑/etc/profile文件:</B> ! d$ W+ F& m/ ?0 S4 e* D
. ?/ R8 S& F/ c% Z" L" w
<CCID_NOBR>
/ Y; V$ }: e! g' P+ d<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>  `& J) K1 |$ r; `. G5 Y8 ?/ L
/ R! l9 W+ t. q& R1 D6 x
<TR>- b2 \; {/ `) L
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk! s) i! Z: `/ P$ g
CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr  ' g5 y2 ?8 z- r# ^) V$ @
-e/lib/rt.jar:.* ?% \# Y+ ^  k
PATH=$PATHJAVA_HOME/bin4 V2 u6 E; @/ y5 |
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE   
4 k0 M0 S% v  c& s9 [6 M7 UINPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>. \0 m2 L5 c+ B* M7 W: g3 W+ q

( F$ P. ~4 e- y最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 ' L6 h! j) c2 ]$ O; ^* _- K: [
0 M0 t1 u- g0 g# w3 {, B
下面介绍一下JDK的几个重要的命令: ' o) N. U7 j. n' }- _& G. T

9 \4 |- B+ u- a) l! Z9 `1 z0 `◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; . {1 D# M) z/ I  ~# y, G6 \
% E) `1 u  E: Y. X1 `  G
◆javac 编译器,由.java文件生成.class文件; # b* Y6 |* v6 K5 u

, \8 I7 v6 h" W: G' [* s◆jar Java压缩打包工具; 5 y, l) t- T- {5 {8 z: `# S
; r9 [/ {" c6 h0 S2 z- m
◆Javadoc 文档生成器。
  k1 L' ~4 G1 X% D
9 A' z# O! `! u最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 - e2 V/ [) y; n8 o) q  Q$ Z2 i

! e( K1 m1 \( M0 V
6 }4 U( {; m2 W; j7 Y, r, |- o4 Y<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
  c3 ^$ ~* \4 ?; `- x# t2 ?9 F# O: a0 ]& y6 ]6 ]4 H
现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
! `" w. Q& w6 A& R6 k9 M" E' m" W
<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> ( j( w  i2 g% I( x
! T9 s; {& z! \1 @/ c
<CCID_NOBR># E+ p  u9 i: f& h  U
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
& J8 }1 O1 D) S- ^, R: Z) Q2 r
5 A5 E$ a8 i; I<TR>
; D( P( j: ]% |: o( x1 B: [<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
* E- z! z4 R  G' u  public class Hello{
+ B  a. J9 a* z4 i        public static void main(String []argc){( @3 J+ Q( Z. S
                System.out.println("Hello Word!");0 L7 k: V$ T. S% @1 r6 o; k: Z& o0 m
        }
1 h" ~/ J% X( w8 A  }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>  ]7 r3 P5 s8 \( g

& ~: {- v% v6 M+ K0 Y+ \0 A<B>2. 编译:</B> . e5 `% M; ]( h0 A) d  j

( ]4 P/ p1 J, ]/ d5 P1 L3 i<CCID_NOBR>
, V2 A! R" J. _  F" {# w<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>( {; L9 e) b6 b/ u: S
( f  B6 R: U5 E' Q& B; v/ N# O
<TR>2 T9 Z5 I3 T+ n' P5 w
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
$ M3 P' p) F+ z" X3 k, N. Y+ b
( N5 G( p" m& t) C$ S<B>3. 执行:</B>
0 m; D% D5 h! V# N
/ W$ D9 D# b" s4 H<CCID_NOBR>, G& p' p( [- n9 V3 T7 T
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
- ]0 }& j% B9 H; @# C' o7 U3 i
  N) O' a9 s" Y" f: s# B" t# B' u7 b<TR>2 I. w4 ?. @) C3 q+ ^( @& ?
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Java Hello
& c1 K" d# J2 t+ _2 o2 i4 z     Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>0 o2 r) Q7 {" L& F7 q8 K6 o% J

& ^  m/ H+ G) P, x6 c成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
9 E6 t; T/ {2 d1 V4 e3 H  }" y8 m% ^5 a6 y7 o4 C
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 6 q7 |9 {7 A  K6 j3 x, s! ^
7 E0 h. p- Q" u1 e
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 5 p. X: X+ n( S1 e# D1 |7 Z
% f. [7 o8 E  f* g: F
% q# c! t8 d5 `2 j* N9 c1 n4 u
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>8 X3 i/ L6 ?* H" c6 O- ^/ q
# }& n, b  Y9 v3 X+ @
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
# D. p! o. A: w
& Q2 ?4 p- _+ U( r0 k$ M% v1 w<B>1.Java Web编程</B>
- M& J. t8 e1 x& g! v4 Y8 v8 J, X: b( D! T
对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
8 K( r: v! q! ]" [6 S: E& J/ y  ?2 e: n0 Z/ B5 P7 h- O  ^
<B>2. J2EE的学习</B>
' K: u- ?; V' V: U# V' |9 A4 }: C1 j/ D" y. r$ z
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
9 ^  p- ?" r* f& R0 s+ k  p: r2 l9 ?( w3 h0 L$ W
◆ 了解J2EE中的技术术语的含义。 4 Z3 E; g5 D  k  X
+ {- r( L- h1 ^4 i7 R$ b
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
; F( l' q& [% @/ O" E- q5 K- h1 z1 H8 n3 |  F
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
! p6 E( @, M5 O0 c* l- b
2 Y8 e/ T) j) Z, D! aMVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
# b9 E' L5 n1 p3 z: T3 X7 H  z# J4 g! c- b) F  }
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 9 r2 d# x9 V% g( W
. x& `' C5 v8 \0 F9 t+ r# _
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
! Q; \9 n1 C2 [, Q( D( B0 I
4 t0 v3 j! p7 T* B◆ 学习J2EE下的各种技术。 2 M: @4 n" n% N; o: L

. X5 o* k. Z2 Y; Y8 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 20:51 , Processed in 0.413247 second(s), 53 queries .

回顶部