我在學(xué)習(xí)
Java
的過程中主要圍繞以下幾個方面來學(xué)習(xí):
1
.時刻提醒自己
Java
是一種
OOP
語言工具,而不僅僅是編碼,只有這樣才能總體把握和運用
Java
。
2
.在學(xué)習(xí)的過程中,最好能夠了解
Java
的底層機制,而不是僅僅停留在表層,不是抄書上的例子運行出結(jié)果就可以。要注意,即便對一個簡單的例子也要有耐心去琢磨、調(diào)試、改動。
3
.在學(xué)習(xí)的過程中一定要動手做、寫代碼,而不是抱一本書看看就行。很多東西和體會必須自己動手才能真正屬于自己,最好能參與一些實際的項目。
4
.在學(xué)到一定階段后,你開始希望用學(xué)過的東西做些什么。這時的你應(yīng)該開始學(xué)習(xí)一些更多、更復(fù)雜的知識,比如
J2EE
平臺的構(gòu)建、
EJB
的開發(fā)等。對于這一部分,我建議最好找一本較薄的書先了解一個大概,心里有個總體的認識,對更多的技術(shù)術(shù)語做個初步掌握。我認為這個階段看看《
J2EE
技術(shù)實踐》很不錯,它可以讓你了解
J2EE
包含的各種技術(shù)和框架,同時提供很多實際的例子來加深對
J2EE
的整體了解。
學(xué)習(xí)
Java
的興趣和決心起了很關(guān)鍵的作用。在有了上述基礎(chǔ)后,我便開始一步一步地學(xué)習(xí)
Java
。
Java
環(huán)境的搭建
要運行
Java
程序,必須安裝
JDK
。
JDK
是整個
Java
的核心,其中包括了
Java
編譯器、
JVM
、大量的
Java
工具以及
Java
基礎(chǔ)
API
。
可以從
http://Java.sun.com
下載
JDK
,有
1.4
版本和
1.31
版本。我的學(xué)習(xí)環(huán)境中首先,采用的是
1.31
版本。
解壓安裝。然后,進行環(huán)境設(shè)置。
1.
對于
Windows
平臺要進行以下設(shè)置:
set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar
2.
對于
Linux
平臺要編輯
/etc/profile
文件:
JAVA_HOME=your_install_dir/JDK/j2sdk
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/td.jar:$JAVA_HOME/jr
-e/lib/rt.jar:.
PATH=$PATH:$JAVA_HOME/bin
export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE
INPUTRC JAVA_HOME CLASSPATH RESIN_HOME
最后,在終端上輸入
Java
看能不能找到這個命令,如果能找到安裝就成功了。
下面介紹一下
JDK
的幾個重要的命令:
◆
Java
執(zhí)行工具,是啟動
JVM
(虛擬機)并執(zhí)行
class
(
BYTE CODE
)文件的命令;
◆
javac
編譯器,由
.java
文件生成
.class
文件;
◆
jar Java
壓縮打包工具;
◆
Javadoc
文檔生成器。
最后就是
JDK Documentation
,這是
JDK
的聯(lián)機幫助文檔,是最有用和最重要的學(xué)習(xí)參考文檔,應(yīng)該多看。
開始寫自己的代碼
現(xiàn)在環(huán)境有了,應(yīng)該寫個簡單的代碼進行測試了。還是從經(jīng)典的“
hello word
”開始。
1
.
先用編輯器寫一代碼(我用的是
Linux
的
vi
):
[stone@coremsg work]$ vi Hello.Java
public class Hello{
public static void main(String []argc){
System.out.println("Hello Word!");
}
}
2
.
編譯:
[stone@coremsg work]$ Javac Hello.Java
3
.
執(zhí)行:
[stone@coremsg work]$ Java Hello
Hello Word!
成功了!這就是我的第一個
Java
程序。從那時起我知道已開始走進
Java
的世界,接下來就靠自己的努力了。在這個過程中,筆者認為有幾點需要注意。
學(xué)習(xí)一門新的語言,參考書是離不開的。我的建議是開始最好找一本篇幅較短的入門書來學(xué)習(xí)那些最簡單、最基本的東西,包括學(xué)習(xí)
Java
語法等。同時,對一個最簡單的程序也應(yīng)該多去調(diào)試,多想想如果改動一下會出現(xiàn)什么結(jié)果?為什么必須那樣寫?多去想想這些問題然后去操作,會讓你有更多的收獲。這樣反復(fù)地思考是很有用的。此外,在這一階段還應(yīng)該多看
JDK
的聯(lián)機幫助,盡量多地掌握
JDK
提供的
Java
基本類庫
API
。
在有一定基礎(chǔ)、能夠?qū)懸恍┖唵蔚某绦蚝螅梢蚤_始看《
Thinking in Java
》這本書。它比較完整地介紹了
Java
的語法、面向?qū)ο蟮奶匦浴⒑诵念悗斓取Mㄟ^這一層次的學(xué)習(xí)能夠加深對
Java
的理解和底層原理的運用,同時又可以完整地了解
Java
的整個體系。在這一階段,應(yīng)該重點學(xué)習(xí)
Java
的面向?qū)ο缶幊陶Z言的特性,比如繼承、構(gòu)造器、抽象類、接口、方法的多態(tài)、重載、覆蓋、
Java
的異常處理機制等,要對上述概念有非常清楚的了解。這樣做的目的,是要讓自己把這些技術(shù)應(yīng)用到實踐中進行合理的程序設(shè)計(比如,你會考慮一個類是用抽象還是接口來設(shè)計等)。這就要求必須在大量的實踐中去應(yīng)用和學(xué)習(xí)。這也是當初很多朋友給我的建議。
學(xué)習(xí)更多
如果要用
Java
來完成各種功能更強大的任務(wù),那么就要學(xué)習(xí)語言以外的更多的東西。
1.Java Web
編程
對于
Java Web
編程來說,應(yīng)該而且必須熟悉和掌握
HTTP
協(xié)議,可以參考
Stevens
的《
TCP/IP
詳解》第三卷。
Java Servlet
技術(shù)提供了生成動態(tài)
Web
頁面內(nèi)容的能力,這在你的
Java
項目中是最基本的功能之一,所以必須學(xué)習(xí)。通過這一階段的學(xué)習(xí)應(yīng)該掌握
Servlet/JSP
的
Web
編程。
2. J2EE
的學(xué)習(xí)
J2EE
包含的技術(shù)太多了。如果你想坐在桌子旁邊抱著一大堆書來學(xué)習(xí)的話,效果不大的。我建議在開始這一階段的學(xué)習(xí)的時候,可以按以下步驟來做,總的思想是“總體把握,各個擊破”。
◆
了解
J2EE
中的技術(shù)術(shù)語的含義。
我的感覺是
J2EE
標準中涉及到的各種技術(shù)很多,如果一開始就一個一個去學(xué)習(xí)的話是不現(xiàn)實的,也是沒效果的。我的建議是,先對其中的技術(shù)有個大概的了解,比如
EJB
、
JavaIDL
、
JTA
等。可能你不知道怎么去寫一個
EJB
,但是要知道什么是
EJB
、它能做什么,當有了這樣的概念后,再去有目的地學(xué)習(xí)它就會快很多。我還要再重復(fù)一句——必須要在實踐中動手去做才行。
◆
了解
J2EE
中的設(shè)計模式,這樣能幫助你對
J2EE
做個整體把握。
MVC
開發(fā)模式被證明是有效的處理方法之一。它可以分離數(shù)據(jù)訪問和數(shù)據(jù)表現(xiàn)。你可以開發(fā)一個有伸縮性的、便于擴展的控制器,來維護整個流程。通過這一層次的學(xué)習(xí),當你面對一個項目的時候,應(yīng)該首先把握它的總體架構(gòu)的設(shè)計,以及決定采用
J2EE
標準中的哪些技術(shù)。
◆
了解一些
J2EE
平臺的典型案列,加深對這一技術(shù)的概念和理解。
平時可以多留意這方面,熟悉一些典型案例,分析它為什么要采用那個時間?那樣做能達到什么樣的目的?然后聯(lián)系到自己身邊的項目是否可以作為參考。
◆
學(xué)習(xí)
J2EE
下的各種技術(shù)。
在有了前幾階段的學(xué)習(xí)后,可以自己搭建一個
J2EE
平臺開始具體學(xué)習(xí)每一種技術(shù)。你可以參與公司相關(guān)項目進行學(xué)習(xí),也可以自己搭建一個平臺進行學(xué)習(xí)。這時候應(yīng)該找點相關(guān)的書來一步一步學(xué)習(xí),沒有捷徑可走。如果你不滿足于這些,那么還應(yīng)該更深入地學(xué)習(xí)
UML
、設(shè)計模式等方面的東西。