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