QQ登录

只需要一步,快速开始

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

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

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

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:33 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本文选自:开放系统世界——赛迪网  2002年12月18日 $ \9 m/ {* r1 i0 h( r4 D) B
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
: S+ |1 b8 ?7 y- p
8 x6 ^7 `+ R1 T7 B8 b我在学习Java的过程中主要围绕以下几个方面来学习:
* C$ q2 }3 ]) \6 a- @/ ?& x& @. K4 w
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
- `9 [. A2 p0 v! Q4 i+ `8 X8 Q, ^) L, f. `7 h, B
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
' O' i& Z5 S9 I' v& I
0 h) L" A; P; l2 }3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
" q0 R# g' Q* R  R! @9 C. x
% j1 j+ H) `6 j! ~1 n9 m4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。
, J2 y7 T4 K& C! _8 N" ~$ Q- F/ U7 o
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 $ y) @0 q! e9 l* X8 a# a

: f6 d) d' _0 N' o& i& [
8 G, T6 |7 s- m<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>- i( W1 C9 Z8 s# X

; }4 w' S# ^  q* F5 q, x7 q要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。
+ D7 \* x6 M( G" ?6 {7 L
7 J5 e6 ^- W  _. B; k% y6 R可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 ' a6 E3 a6 ?( v( ]

  r( r0 S4 p1 j) r6 s; m4 x解压安装。然后,进行环境设置。
* Q# V' @0 l6 T2 y' H$ W5 j/ w2 c& B" s$ K$ a' r& {
<B>1.对于Windows平台要进行以下设置:</B> 7 S9 Q  Y/ ^4 |7 u& d- L
; z; b$ T  `7 ^* t5 {+ j
<CCID_NOBR>4 d' _5 y$ n* b& M2 O& D- g
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
0 E" H. T9 H* B+ h- y6 W
' J' ?8 r: z3 Z5 q, R, g8 Y1 [5 N3 u<TR>
# ~/ c' w4 t1 J: j2 f4 j! @# Q<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command/ D  {. f1 a9 x4 S1 _* }' p
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>( X2 q$ {: v/ T! K& r" Z# t+ Z1 [

+ [  A" h/ Q+ H: u$ @5 Q; D1 U9 a<B>2.对于Linux平台要编辑/etc/profile文件:</B> * H" L0 n4 H" X" h8 i

- P; \7 n8 F  D" c<CCID_NOBR>$ e+ s: H, R* |! H
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>7 {3 D- ~: M5 @* M9 |7 r1 A
! q/ m6 y5 j0 R1 D. X
<TR>$ s) p( L  L  A7 w. e: J
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk# U% v* s. G5 I  _$ {
CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr  
$ N9 [$ R3 T/ p3 y6 @  S  V-e/lib/rt.jar:.
: D, D! I* b( C2 j! V# i; K$ DPATH=$PATHJAVA_HOME/bin
' T$ P- Z, S. Q' T5 B2 Texport PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE   ( z6 S. z' c! i! i
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
1 L( i$ H! l+ O" ^: z8 e, Z) U$ a' N1 U* y/ A8 [' p% g
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
; y  ]4 ]1 \/ V! T  x0 r* j
" j% C% e( F! |6 t6 l' J+ ^下面介绍一下JDK的几个重要的命令:
8 H% }, d& ?, P# I) R: e/ _" p+ d, x
◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; 0 W7 H/ w4 D7 _7 I
8 k5 p4 _+ M9 A8 B, O  o4 O+ C/ ~
◆javac 编译器,由.java文件生成.class文件; ; [$ T% f7 g$ Q  s6 K/ x
$ _3 j! G' U( {$ K  U
◆jar Java压缩打包工具; 6 X! T  ~. e+ T3 v, B+ i" a

) Y. a: [6 G7 g7 }- d0 C% w◆Javadoc 文档生成器。 % I* M7 ^. h, Z( p5 I
% z+ g" b% p2 P+ R; h
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 * I; P" q/ I7 f5 u- p0 _; B

9 r9 k) C/ Y! {) b$ k- G" Z7 t
% n2 E( c: p) n# J5 k: g/ T<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
3 a, o/ C  T0 J: h( \# y
, p2 Z' p0 A7 I0 a+ d+ }9 ^% M3 E现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
6 S. R+ X  `* j) P1 H6 x; D' j  D
, l! x" k  N& r! O<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
( D" s+ |" d% k% h/ ?& B6 X5 I  K+ u+ }) ], D
<CCID_NOBR>
+ ]( X3 `7 M2 n  m<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
6 `: f6 y' }! G
) x5 @9 C1 i( I9 _+ G, ~, r7 x! B, `<TR>
4 i2 \9 h. W, F. C( K: P4 E% @<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java
; c& ~# N/ y& F0 S' ~  public class Hello{
: I5 u6 Y* z- k+ a: k0 x        public static void main(String []argc){
& }. N4 X& X) M" q; a" c7 ^2 l- |5 x                System.out.println("Hello Word!");
% t% ]3 V3 F3 C$ F" H2 Z        }
% F$ _. {& S0 Y2 x- W  }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>6 W0 q/ L* @9 m/ \3 D
4 @6 ~5 q+ D/ k/ f) T# I. f
<B>2. 编译:</B> 2 y: ]$ M. T! Q0 ~; |: M

/ z8 J8 r4 I- H7 b! ~<CCID_NOBR>
5 |+ V( y/ }$ P4 I, f) c# y<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>5 ^! }8 A* f& d

' z! T( {# j1 L/ g  ~<TR>
$ |- Q3 E% k( u<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>) @. q+ P0 `! y4 l5 C9 k
, _+ X' s' l0 ~- x
<B>3. 执行:</B>
; P# u' }3 l/ x- U2 f& P
9 P  w% t5 L9 p8 z4 ]) l<CCID_NOBR>2 ]6 ]. w' S* {5 i! P
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>: x! R: a- Y$ F& Q9 N2 s
- J9 W& h0 k; J5 S3 w! \  f; C3 ^
<TR>2 {0 h) N- p1 W6 i/ D1 w4 ]1 I
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Java Hello4 f  U  b* Q6 O$ ?  ^
     Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>8 ~9 H5 `; d* i# V. u
1 U* R: X1 d) i+ [$ j& D* _2 |  V
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
5 X; i2 N# r" [: A' z9 @8 x! F4 i" G) b, n& H9 d' O7 L+ {
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 4 e; y3 O# C" b! A

$ s2 g5 x9 u1 a在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 3 j" D4 [, o0 {6 E
) S/ N: f/ I5 y( `: V

3 ^* q" K/ y; a5 x; |6 [8 W<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>
3 N% C1 ], \+ T& A
2 Z: V4 L- Y, U, u' p如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
# k) `9 f. N0 \
, \+ O4 |* ^! g: x; L<B>1.Java Web编程</B> 8 j5 P, k+ B2 a' l2 U9 e0 k
" ?$ D: m! e- `' L% ?% W5 z/ d
对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2 [( q8 e: @4 P# L
4 ~  S! t+ i/ j; F! i5 m; s, n
<B>2. J2EE的学习</B>
* C. g; P4 c  d$ q( @, [! |5 ]& r# ?% C
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ) }% A% W- h0 ~$ g! k; T

: h+ q) q0 J4 [0 W/ V& g. w! j. N◆ 了解J2EE中的技术术语的含义。
9 ?' `( W/ e. d2 |% }1 Y1 l2 H% A1 m3 m3 m
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
$ X6 p: T) @8 U; W: n% d$ l8 H5 c* V3 F4 v5 X( f' _8 Z
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
( A; u( E( |" b" K, C
; j6 W$ i+ r' s) K  tMVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 0 w& u7 J9 F2 I1 O

0 [4 X" D" Q8 F1 W. V* u" i◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 6 z$ S9 Z2 E( b0 k

& j! c: I# E, l2 T; ~平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 8 H/ n- y8 H) {" F( V* G, P# g
3 f4 W: z; G5 F2 j
◆ 学习J2EE下的各种技术。 6 p, R6 w$ X! V5 ~
* k; l2 ^$ V! x0 ^+ ]" F
在有了前几阶段的学习后,可以自己搭建一个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-11 08:24 , Processed in 0.419585 second(s), 52 queries .

回顶部