QQ登录

只需要一步,快速开始

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

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

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

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:33 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本文选自:开放系统世界——赛迪网  2002年12月18日 ' _8 u5 Q2 V* r* H( ~
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。
' k4 t1 p7 B8 V6 W$ }5 ]( M. h' k# p3 R6 d* T
我在学习Java的过程中主要围绕以下几个方面来学习: $ E- G; S( S) {+ f8 a
! Z" p2 n8 H9 b- X6 ]/ `/ O; c
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
8 c& r8 s: N! L& ]% i
7 u/ |; b+ ~- P& o4 o2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
# F) a  e% S8 \. s# X
) C% d% k6 Y0 @3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 $ H3 |0 Y* k7 F4 u

4 e' s0 @. K6 X+ d4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。
. N* Z2 \4 b/ ?9 r' U. G- s% z
& B0 C% g# v- f0 n* h学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 ; n& G! n3 f6 F, y8 m9 t
. d; W5 q5 @6 p# h( Z: D

7 ^( R% T0 a5 \5 @' H5 x<CENTER><FONT color=#000099><b>Java环境的搭建</b></FONT></CENTER>
7 c2 F8 }. |/ S" E$ Y1 L2 m. b! D
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 + b; \" T* a; u7 ?$ r" l! j  c

0 g! F, ~; H3 k4 }" {' Y可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
% a! Q6 z- i6 r, o8 x; @% _( W! ]3 P8 i) _0 L8 ^6 }" g( U2 x8 x
解压安装。然后,进行环境设置。 ( p8 K. `% t; v
# ~' d3 Q( i9 M
<B>1.对于Windows平台要进行以下设置:</B>
# _) R. v6 t' ^8 p9 f6 C
/ O& W4 V8 T" F& @+ ~1 ?5 ^<CCID_NOBR>7 m4 R. R. N, p4 |
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
2 V; o. A+ y) N' o9 N6 g0 b& E2 x& @6 u& Z! O  p1 A, k$ n$ s$ q0 o# m. Q
<TR>
+ G5 B- U, r- f/ r8 F& [<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
$ A/ q+ L1 ^- F$ ]% `set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
9 h/ @4 y7 v& Z
9 u# s" X1 u1 D' A5 O: \1 W0 O<B>2.对于Linux平台要编辑/etc/profile文件:</B>
+ z- m: Y% [& M0 p4 T: `+ X# p% ^' `" [+ B  v) q- e1 L( v: p
<CCID_NOBR>
0 [# N1 A: T( R7 d3 j3 O* h<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>. }1 b  u7 Y) F' r) Y0 w+ P

7 N, X6 x1 M3 `- e8 A+ _1 h<TR>
' B# B8 n6 b# O, q<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>JAVA_HOME=your_install_dir/JDK/j2sdk' T3 J# {; ~' }' R4 h1 `
CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr  / M7 T. k4 U2 q9 o7 h) k
-e/lib/rt.jar:.' ^$ q6 A: C* d; [6 G! `' T7 ^9 n
PATH=$PATHJAVA_HOME/bin( k$ F3 L/ c( ?. J7 b% Z
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE   ; X- Y9 Z* ^6 ^( c4 f1 _* ?; w0 ]
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
- G) K: U) D/ N; g* X- W  L  G- z7 [/ |% R% l2 ^
最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
" E+ |% ?- Y0 C/ g$ Z& p: O0 v) M9 m# w: g6 Z& w& i( X$ ^, N# h
下面介绍一下JDK的几个重要的命令: & M# E' w7 e( K' b

7 U% m( g6 }- ~. I2 W/ s4 ^◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; 7 U4 v! b! m6 o7 g( o
% r. C% l: E" L. ]) w
◆javac 编译器,由.java文件生成.class文件;
% c" Q8 \9 n4 D( X9 I6 E6 N2 T, M8 {; I2 n  e' z0 C
◆jar Java压缩打包工具; / ~0 W+ u7 g1 l% z% k& x

8 Y1 [; e& a: w! e: t, f◆Javadoc 文档生成器。 ! ~5 P3 v4 H: ^4 t2 J2 G
2 A& a: I1 u8 j9 _* S; f8 b/ J
最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
& p0 l. m. x7 g
: k3 N) Z5 h$ i3 y
$ k% g" |5 o! o9 X1 G; B# V0 G<CENTER><FONT color=#000099><b>开始写自己的代码</b></FONT></CENTER>
+ j, v, _5 N; R. o' ~( ?: A8 w5 K8 q% H
现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
1 T% [( g7 G9 l; M/ K* b: ]* F) k! }
2 b: [  ?3 g$ V! z5 k1 ]; I% j<B>1. 先用编辑器写一代码(我用的是Linux的vi):</B> : Q% m- T. m4 {$ X
. f# Q8 B8 u2 H# c) E) X$ i
<CCID_NOBR>5 |$ r1 m3 d" X& J6 t5 v
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>" j& `% J( I2 m! i$ D( _8 D8 a
& v1 X# E  W4 r4 U( {' C, }
<TR>
9 ?  A1 C5 |8 b- H& O<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ vi Hello.Java6 t0 Z3 R. u- Z; I% |% b; B
  public class Hello{
1 C' G+ k2 |& m0 y4 H        public static void main(String []argc){
) a# r# i( O0 ~! o0 D                System.out.println("Hello Word!");
8 H- t6 t5 n4 G8 k/ r9 H- z6 a8 s        }
, B. H8 h. s+ u0 g3 d9 D  }</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>& c5 K% y/ S: P
0 |* r: Z; x0 C0 y$ O& C9 _9 I  M
<B>2. 编译:</B> 6 ~2 I4 M. Z, Q  W3 Z% v$ _

1 ?3 v9 a# a8 z7 C<CCID_NOBR>1 `$ x9 W$ A$ U. w' K
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>+ \% h# y2 {9 x1 u
9 c/ r/ o2 o) T8 y( E1 ?; }
<TR>5 ]& B, R" i1 K5 I# Z8 r4 B" K
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Javac Hello.Java</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>
1 b$ E. g  Z4 r0 G) O9 V: w( o& q. ^' C; F0 n3 e8 c8 W( f8 p' B7 k8 W0 @
<B>3. 执行:</B> . s1 D* C# k% X6 N  ~6 _$ I

( j) e! _4 E) ^0 l( o4 r& l% T7 y2 q<CCID_NOBR>* b% p0 d  L# a( `
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=black cellPadding=2 cellSpacing=0 width=550>
" m  |; H( p" V2 G, H
1 ^- k; [- Z+ j9 A2 B6 M<TR>* V9 v  a) u2 }, G1 A3 z8 Y/ M
<TD bgColor=#e6e6e6 class=code><RE><CCID_CODE>[stone@coremsg work]$ Java Hello) J  I' P# W/ g* J
     Hello Word!</CCID_CODE></PRE></TD></TR></TABLE></CCID_NOBR>( O4 J" E! p3 @- I

- |5 }4 k6 L0 O4 O$ N5 Z) O8 W成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
1 @  d* \, ^3 `* o! F  k9 y8 T$ v: _( X6 ]8 {% S
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 # g; x* ?" Q& W

9 _# g4 M: y4 p3 y1 l在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
$ B5 p9 C$ q" A7 Q6 c" y0 d
& `( J; ]% q& H, V& T
( f2 ~# g' a+ ~6 ?$ u<CENTER><FONT color=#000099><b>学习更多</b></FONT></CENTER>
' V% @1 _$ d/ A" n. }% x! }
1 Q% P/ @6 ?! D% ?, U  z4 j- v如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 ' L, R/ ]; k' G' o
( u0 I& I% [4 o/ n/ y
<B>1.Java Web编程</B> 3 |5 I8 e5 l3 M1 t- r5 d  p9 g
. w3 d0 v2 k. K9 _) U5 _
对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 + [' ~9 @1 ^5 A/ G3 J5 ]$ F
/ Z+ C. c/ O8 c; o! Q
<B>2. J2EE的学习</B>
5 s8 h, U( }9 g& E% t2 f" X* E3 G/ U. G0 ]3 O7 }8 i
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
7 B$ a  ]; d' y" A/ h( ]
& Q1 g5 c, Q4 l8 H$ D2 q◆ 了解J2EE中的技术术语的含义。
1 g# H+ K( T) @, ^0 `3 k
, o2 }4 T; ]0 {我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
0 U1 k+ {! T+ B0 H
' J2 `( G* J  U& ^. X5 ?% z$ |◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
3 Q6 c2 S! `# a3 O- i) W8 u1 {8 K  Z$ |* \. ^5 H, X0 j
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
) I. |; B, v1 w& H  w( d; m9 O8 ~0 M" H
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 7 p7 p* Y! N, X2 L2 P+ R4 U! W
3 E- c& e& P! t( Y7 i4 h  h
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
$ H( ^+ g- _$ T' k
  [. v* _8 V4 j+ X" \2 X5 A◆ 学习J2EE下的各种技术。 7 i7 F7 [, ^2 C( c2 u( `9 N

, s2 H2 I3 F6 T  b7 v0 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 04:03 , Processed in 0.456885 second(s), 54 queries .

回顶部