QQ登录

只需要一步,快速开始

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

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

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

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:33 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本文选自:开放系统世界——赛迪网  2002年12月18日
5 [3 u. c# G( g, DJava总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
7 `! ?+ a# `9 w/ k7 j8 A( q; }: X  {* P! x  E
7 ~# q$ y% k' j8 ?8 S我在学习Java的过程中主要围绕以下几个方面来学习: ; }4 t+ _/ ~* @8 s+ q" h  n) }

' S; B+ y! a( Q9 `) k! G2 X# \4 j1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 6 d# T' V- B  A
+ s) Q, d% V0 |, J4 }
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 7 Y# q6 y' X: _& ^- z7 y
% B4 U* N2 l8 ]$ d! H( {; ?/ E
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 $ a8 _  i! i, {
8 u  l" k- d& f! b$ Z
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 " Y& y' s+ l& v$ j2 D
  c" W  }" u; K8 z. e
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
. W8 l: B3 b0 ~- [9 i
" R5 L0 l0 Q# o/ s
* e, m/ K" B! [  R8 J<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
1 i1 K* N( h, w5 ^: y
3 [1 |5 e" n% m1 G+ g要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 0 q: K, e9 N* E& M3 J
9 Z" D# Q! g9 X! o0 A( c* t
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 1 n4 `  p- V1 G1 G0 S; l& g
! O, F  A! C% m
解压安装。然后,进行环境设置。 / k# r/ b% X$ ]6 g* ~/ y( v7 z
; w* D/ B/ U) y, ]/ x* n7 F8 Z/ X& V1 j
<B>1.对于Windows平台要进行以下设置:</B>
. b  P+ c7 p* ]6 ^* L7 z8 U  h% b9 @: `; X" I. Q; t0 Y& d
<CCID_NOBR>
. {" x9 A3 Q) ^" ?& x7 ?3 f- l6 l2 X<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>/ K( W0 e. ]" }5 F( E8 l4 b
5 u/ R7 J( N! t
<TR>
- D  B8 b$ _) x+ B: Q<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command9 u: a$ d* i! _4 J! W
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>% K  l/ y, A/ x& q4 L

( I- M. j  v& N1 ~3 D: W3 C<B>2.对于Linux平台要编辑/etc/profile文件:</B>
* ?1 k( x0 @% r& {' z6 d9 ]6 T$ Q  L4 [4 ~5 Z
<CCID_NOBR>' D& M( @9 X4 n; B/ D
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
! W* E2 G9 w2 ]) M
+ L7 J$ U  d. ]1 T4 g<TR>
, t: \% k$ T$ H, G<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk
6 y6 u: b) D8 v! _5 \6 UCLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr  # H. y+ y5 [2 r8 l5 V. C
-e/lib/rt.jar:.% G& I5 M2 d& X* E0 [6 T9 H+ \1 B
PATH=$PATHJAVA_HOME/bin
  Y9 [% R1 t7 C3 h  dexport PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE   0 \0 M: r% s9 E  y: V( D
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>0 k! p6 ^( o; ]
4 `" {, ?7 [* B+ B6 p, I
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 3 \7 v5 S1 }+ a6 t
0 Y1 n6 ]: |( s& x# m/ c8 X# D) j
下面介绍一下JDK的几个重要的命令:
2 G2 S2 D& A  I+ z* J4 G9 ]2 O
( x" D+ ~9 e1 i# [4 J◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令;
* u) J8 ?" D; P- p/ n- B# Y" _4 G# ~) t# _
◆javac 编译器,由.java文件生成.class文件;
+ A' k; Y( t: K- U7 e
) u' i. X. w9 \◆jar Java压缩打包工具;
2 U8 n# a- s8 t/ U& r  M7 ?. |$ p: M; b! u5 h
◆Javadoc 文档生成器。 4 ^1 }: p1 g- m! J3 |

/ g/ S2 s) E8 \3 j( r! u; W* I( s最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
$ P4 }( k/ C8 s% s$ b
) O) q, H0 i6 M' \4 G- y1 o) F' Q+ Y: Z5 H8 C9 T; ^1 y
<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>7 x& W4 x7 N$ V; g

8 \5 ?8 d  N7 T9 w9 ^现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
& L9 c3 [; _: j* ~5 }3 d- z
& L( b8 W% Q# a<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> % q& {4 E3 s% N: _& @

, L1 y8 z6 i: [4 m! z<CCID_NOBR>: {0 f4 ^6 j- v8 l+ Z- U* F/ z6 Z
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
1 \  [4 h* ?0 ^9 H4 U( X! z
8 \8 k: \& a( Q2 f+ J- H0 e<TR>$ x! @/ Z) y* h" i5 ^& J3 V9 Y
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java$ f3 C% C0 u5 X
  public class Hello{
0 k; R: A/ x+ x: W8 q0 M8 {        public static void main(String []argc){' ^- p, m' K+ E; J; W
                System.out.println("Hello Word!");# @- w( h! s9 b4 A5 M. G
        }3 z% L) R; H) n2 t
  }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
7 S. Y+ V1 z* z) {# a) e& ]% F; A$ v7 N8 }" K
<B>2. 编译:</B>
) Z- n# J' e3 ?$ k  ?/ a  h( i1 e6 B: Z/ Z1 K% o: [- Y" y
<CCID_NOBR>
: V# i. p% o  ]7 x# ?: R<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>- m: L2 w7 Q! g7 _, z; L

# a5 q1 w3 E. m# u! l2 b5 ~<TR># S- c. _( ]$ I, v) s+ h2 ]
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>) y. ], f0 q5 ^, y. U
. _% ^" w8 K$ r3 D2 k7 i% _
<B>3. 执行:</B>
& }5 u& i& x6 ?5 D& @8 H4 t0 ^6 H# ^- J/ h0 h: p: U; T% O% |/ n
<CCID_NOBR>
! A7 E8 x: k' t& J<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>; p8 W2 c& D( ~* D8 t! y& }
& m, D' l. h( e* ^1 m
<TR>( \3 ?# X1 A3 d6 [7 f
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Java Hello4 ~1 x* N- |& y- U
     Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>6 N6 f& m9 I- E! d& \. R! O
' q" B- o3 ^" w+ I  K' c2 K( T; y
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 5 |4 o8 X& w: U* a( N
) I  h/ @0 d+ Q* b
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 * Q* r% N( ]6 M* r$ C

% m1 H- \5 [% t: u. K; `在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 ) W1 e0 g8 L3 g. N: G$ u" |  z
% f* O' w; p6 r5 W/ G' ?/ {
. ~5 [* M% G  i& G! d
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>. I1 c- }2 v/ _; E
" ?6 f; I6 B/ {" j( Z
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
$ j% F; F3 i0 F
" R; z5 K% u" a0 L; G6 E. ?<B>1.Java Web编程</B> ) Y1 A% h/ {8 L- k# j

# f' a6 {8 K6 f6 m$ V% v对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 # E4 k/ o9 Z9 H+ ]; y% K4 ~& p% S
4 Y0 p% x( R2 m& o+ Z6 [2 C; l9 j
<B>2. J2EE的学习</B> 3 X. o$ D# J  {9 Z0 C. M
7 B* f& W% C& z
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
1 ~% X' d* x& F( \+ p, x4 `
$ S% D* S1 W4 k◆ 了解J2EE中的技术术语的含义。
  P: C" R  `  A2 H  v' Z+ J4 g6 _7 i, k. z* `8 S2 m1 k' W) v
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
* ~. w9 ^2 ?$ P% h/ S7 P
8 Y" L, D- b/ B6 F$ h◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 ' o% _6 l* O$ ^+ j" m$ |9 X5 p
) y* p- C+ k$ h
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 7 \% ]5 o3 W, Z6 L3 E7 b/ _  l

! c" z. S- P( Z* U4 P; ?◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 4 f6 o! |% ~1 m9 W) C. Q

2 `8 V" B- A0 W# n. ?& O: K: k平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 / \! \1 Z) M* }6 ]6 }( |; K
8 r4 p: m/ |+ f! s# {
◆ 学习J2EE下的各种技术。
9 Z' i5 u% V, _; V( r6 u& I1 B/ I( _) s  p: `
在有了前几阶段的学习后,可以自己搭建一个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-12 17:18 , Processed in 0.409469 second(s), 51 queries .

回顶部