QQ登录

只需要一步,快速开始

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

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

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

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:33 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本文选自:开放系统世界——赛迪网  2002年12月18日
2 Q" I: h+ C' W% lJava总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
' M" B5 z2 k* N' Z8 X4 O7 \, h1 X. c. o& T' V
我在学习Java的过程中主要围绕以下几个方面来学习:
3 v$ L# e" r1 r( I# `7 U& Q9 v1 B4 ^$ C6 E* a: i
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
  R, ^8 B, k6 h$ @8 s3 g" Z8 Z; z3 b% \9 S8 Z/ O$ N
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 ' S- e: U' [7 {7 g7 O

& R, ^4 \6 i6 R9 y3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
: x% Z+ m' s8 g
8 c, R! H8 S' R( H0 ^! ^: r4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 9 I* m/ e- `" f* t( T, k; w; b

) }5 t( e: u# O- V) q" O1 N' a学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
, {" F2 t- |' Q2 O3 C$ O  i1 ~
0 A$ D- B7 i( v0 K) u$ C. O) E6 J! Q' x; L! z' b
<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
  a$ X! t/ L6 I- H0 o. f" t2 j2 e" `( |. u
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。
( H9 I" Q$ D1 ?3 o- V, D0 ]# ~" x- m
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
+ [) @& W. N) [
- C; B6 z: O4 y' \( v解压安装。然后,进行环境设置。
2 @$ i" c8 o* W
7 X: l* }1 |: B1 u0 d1 B<B>1.对于Windows平台要进行以下设置:</B> - G. ^$ ]' v& m: m

9 u, D1 ~+ X" y, z: X<CCID_NOBR>7 P) Z( d2 X7 j8 _) l- V
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
/ k' J( k% Y! D+ j' x
! c0 x$ O1 p+ \" q! }<TR>& K) [, G5 S) W: c2 T! Q$ f/ X
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command+ H  E2 v8 H& i5 M7 H- b# K
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>9 j1 s# w/ j/ Y2 h7 b  K& A

. ]  m/ D5 V: O# X7 H<B>2.对于Linux平台要编辑/etc/profile文件:</B> ! V5 T4 ~8 U8 ?+ i) }; W

8 i  J% c! O/ `& G: g- h<CCID_NOBR>5 z( u: N0 j- D; I- v
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
7 R$ \2 f4 C: z( G  `" |" m" s) }! C/ M( z# k) `5 c
<TR># ]2 I; G) j% G' J" u6 W8 i
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk) r9 V0 ^1 P" }  ]% r
CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr  , @/ C* o. l1 l6 H7 z
-e/lib/rt.jar:.
) `. Z( x. x% X7 z' {* n8 v# n  ]PATH=$PATHJAVA_HOME/bin0 ]( L$ l* Z2 W6 J  n, f# V
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE   
8 u' H, Q3 J+ [6 t, LINPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>- \3 X/ V  V  `. D3 S% I5 h; w
% j2 Q# n# \( ~9 `( i
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
. S( e! e2 Y% S4 R7 S( N& ^* I3 b+ ~3 T/ Q" L- r
下面介绍一下JDK的几个重要的命令:
9 r2 g% H& s: l# i  s% i
+ T7 M0 O; a9 c) }1 s) _◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; 8 o0 H  ^- B& Q

. ~# F2 H" t1 N$ P- g◆javac 编译器,由.java文件生成.class文件;   Q) Q: P! {# }0 n) X$ ^

3 o( p  F; m* K* W# v6 C. o' l4 _◆jar Java压缩打包工具; $ f* P' q- b* f* g8 [: _( }. B; P

  X% d1 S3 i6 q◆Javadoc 文档生成器。
9 z# P7 p: G" N7 U" B4 q, P. y/ i$ s, B
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 , O8 i  c) b' B# Y* l

( Y* L  M3 R6 p+ T8 c# |/ P4 b# n
, a+ P3 m+ \/ O. K6 _<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
, c/ [: }/ t0 P2 q8 b" D7 ~8 q5 C/ m3 ?2 i
现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 $ T! z5 _8 A- |

2 W9 Y- i% g) Q2 n! l$ D) b; P: ^<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B>
6 ^+ h$ X9 Z7 m& n3 H* n# Q. D" r
% i9 X2 [0 R9 Z1 d  l9 g0 l<CCID_NOBR>
* N, A' ^0 G+ M8 |+ }7 M2 G5 i% E2 N<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>; U# [. W6 E1 q5 i
6 {$ S7 g) g! j& d
<TR>: U, ?# O# G$ @( T7 b
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java3 D. d' U" c, f
  public class Hello{( Q% l/ m8 F' {- Z* L
        public static void main(String []argc){
/ C+ g6 p$ z7 H+ M                System.out.println("Hello Word!");
+ ]8 w# `2 `( z2 f4 R% d0 `3 t0 r2 t        }
9 b  F* ]; [3 \$ s  }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>0 ?# V" y% R5 U- o9 b' W4 T
) m! n- l- x( @5 l  X" K0 K
<B>2. 编译:</B> 3 _4 }2 Y, B) _8 y  e. g
" P/ A! S1 T6 j0 v2 d2 N4 W
<CCID_NOBR>! D  e* J" K( Z7 k
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>0 C0 f: k: S# o0 }

0 D+ {; F2 F/ p* T<TR>6 B- Z6 z& [8 f$ I" l: Q2 n0 v  H
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
3 l$ O. O3 X! @5 O3 ?; `0 H; K- e2 O# h6 \7 G
<B>3. 执行:</B> 3 D8 Z5 g0 B& Z) s$ C$ d
' J3 n6 m( b6 [3 h# {, O; z" A) i
<CCID_NOBR>
% V; z, _) x# t# k<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
( ^7 F! R  j, [8 L
) k+ m/ q( T" x4 d7 M, Z<TR>
' l- v9 m+ H1 e, }; W+ g3 X<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Java Hello0 k; u% ]2 [- _0 X: y! W
     Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>& ~5 {% p+ P/ z0 Q8 p

* ^  c* }% T) U& B; q9 `成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 1 r# p1 _' ~4 K; g8 M- A
9 t7 B% M8 g1 u6 |1 c9 I  y
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。   h" e0 o9 O: Z. V+ V

' y  h& F7 }0 W9 R. `1 m在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 ) J- U9 B/ x- Z. x
' ?! ?6 H  @9 \( X
- b0 [. _3 o9 v2 c9 s- u! u, ^
<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>) Z! l; o+ }% d/ ]5 A

5 h6 t% L! I' b; w$ c如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
, D0 E4 e- c0 n$ g( {3 P
5 F/ u% [* a  m! a! O<B>1.Java Web编程</B>
' A$ _. ]% ?9 C' u  n' `2 ~6 H( f6 S% x3 _
对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 * y; d# Q$ H4 X. S$ Z
( t) ^# e9 a9 y8 ^, x
<B>2. J2EE的学习</B> & B7 g" c8 B% n1 s0 ?5 U, Z
8 k+ b: o3 g: N: \. z0 m. o
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
6 Z' N+ y: Y1 P; o2 k6 y7 k
4 ~- ~, n6 L! q, F; [, g5 f( I◆ 了解J2EE中的技术术语的含义。 : k) G/ k. W5 {- d! W- s; Z

" r1 }7 }* y6 y, S2 b: E8 V我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。   _9 V4 D; K! Y3 J% v
: N7 M7 b# }6 A% Y) r( b. R
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 ' g. Z6 G! E0 z  p" z* P  v
! ~6 \) \+ _7 r" J# v/ m4 j2 L& Y
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
& q% Q3 n) H5 q4 h) i" J) r" B6 A; P/ f0 c
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 % w0 Z9 u( `) v, c

, f: R3 j! {+ n- O平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
5 b  O0 U2 g* I' {! T6 ]/ p6 P# d- [3 r! |
◆ 学习J2EE下的各种技术。 9 ~4 x" H' v* N% t
' u. T' P3 N0 C, P3 _2 u
在有了前几阶段的学习后,可以自己搭建一个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 15:07 , Processed in 0.361929 second(s), 52 queries .

回顶部