初學
Java總有它的千般好處使你選擇它,但這些隨便翻翻書或在網上逛一圈就能找到答案。在本文中,筆者把自己學習Java的一些切身體會和過程寫出來,供初學者做個參考。
我在學習Java的過程中主要圍繞以下幾個方面來學習:
1.時刻提醒自己Java是一種OOP語言工具,而不僅僅是編碼,只有這樣才能總體把握和運用Java。
2.在學習的過程中,最好能夠瞭解Java的底層機制,而不是僅僅停留在表層,不是抄書上的例子運行出結果就可以。要注意,即便對一個簡單的例子也要有耐心去琢磨、調試、改動。
3.在學習的過程中一定要動手做、寫代碼,而不是抱一本書看看就行。很多東西和體會必須自己動手才能真正屬於自己,最好能參與一些實際的項目。
4.在學到一定階段後,你開始希望用學過的東西做些什麼。這時的你應該開始學習一些更多、更複雜的知識,比如J2EE平台的構建、EJB的開發等。對於這一部分,我建議最好找一本較薄的書先瞭解一個大概,心裡有個總體的認識,對更多的技術術語做個初步掌握。我認為這個階段看看《J2EE技術實踐》很不錯,它可以讓你瞭解J2EE包含的各種技術和架構,同時提供很多實際的例子來加深對J2EE的整體瞭解。
學習Java的興趣和決心起了很關鍵的作用。在有了上述基礎後,我便開始一步一步地學習Java。
Java環境的搭建
要運行Java程式,必須安裝JDK。JDK是整個Java的核心,其中包括了Java編譯器、JVM、大量的Java工具以及Java基礎API。
可以從http://Java.sun.com下載JDK,有1.4版本和1.31版本。我的學習環境中首先,採用的是1.31版本。
解壓安裝。然後,進行環境設定。
1.對於Windows平台要進行以下設定:
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/jre/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執行工具,是啟動JVM(虛擬機器)並執行class(BYTE CODE)檔案的命令;
◆javac 編譯器,由.java檔案產生.class檔案;
◆jar Java壓縮打包工具;
◆Javadoc 文檔產生器。
最後就是JDK Documentation,這是JDK的線上說明文檔,是最有用和最重要的學習參考文檔,應該多看。
開始寫自己的代碼
現在環境有了,應該寫個簡單的代碼進行測試了。還是從經典的“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. 執行:
[stone@coremsg work]$ Java Hello
Hello Word!
成功了!這就是我的第一個Java程式。從那時起我知道已開始走進Java的世界,接下來就靠自己的努力了。在這個過程中,筆者認為有幾點需要注意。
學習一門新的語言,參考書是離不開的。我的建議是開始最好找一本篇幅較短的入門書來學習那些最簡單、最基本的東西,包括學習Java文法等。同時,對一個最簡單的程式也應該多去調試,多想想如果改動一下會出現什麼結果?為什麼必須那樣寫?多去想想這些問題然後去操作,會讓你有更多的收穫。這樣反覆地思考是很有用的。此外,在這一階段還應該多看JDK的線上說明,盡量多地掌握JDK提供的Java基本類庫API。
在有一定基礎、能夠寫一些簡單的程式後,可以開始看《Thinking in Java》這本書。它比較完整地介紹了Java的文法、物件導向的特性、核心類庫等。通過這一層次的學習能夠加深對Java的理解和底層原理的運用,同時又可以完整地瞭解Java的整個體系。在這一階段,應該重點學習Java的物件導向程式設計語言的特性,比如繼承、構造器、抽象類別、介面、方法的多態、重載、覆蓋、Java的異常處理機制等,要對上述概念有非常清楚的瞭解。這樣做的目的,是要讓自己把這些技術應用到實踐中進行合理的程式設計(比如,你會考慮一個類是用抽象還是介面來設計等)。這就要求必須在大量的實踐中去應用和學習。這也是當初很多朋友給我的建議。
學習更多
如果要用Java來完成各種功能更強大的任務,那麼就要學習語言以外的更多的東西。
1.Java Web編程
對於Java Web 編程來說,應該而且必須熟悉和掌握HTTP協議,可以參考 Stevens的《TCP/IP 詳解》第三卷。Java Servlet技術提供了產生動態Web頁面內容的能力,這在你的Java項目中是最基本的功能之一,所以必須學習。通過這一階段的學習應該掌握Servlet/JSP的Web編程。
2. J2EE的學習
J2EE包含的技術太多了。如果你想坐在桌子旁邊抱著一大堆書來學習的話,效果不大的。我建議在開始這一階段的學習的時候,可以按以下步驟來做,總的思想是“總體把握,各個擊破”。
◆ 瞭解J2EE中的技術術語的含義。
我的感覺是J2EE標準中涉及到的各種技術很多,如果一開始就一個一個去學習的話是不現實的,也是沒效果的。我的建議是,先對其中的技術有個大概的瞭解,比如EJB、JavaIDL、JTA等。可能你不知道怎麼去寫一個EJB,但是要知道什麼是EJB、它能做什麼,當有了這樣的概念後,再去有目的地學習它就會快很多。我還要再重複一句——必須要在實踐中動手去做才行。
◆ 瞭解J2EE中的設計模式,這樣能協助你對J2EE做個整體把握。
MVC開發模式被證明是有效處理方法之一。它可以分離資料訪問和資料表現。你可以開發一個有伸縮性的、便於擴充的控制器,來維護整個流程。通過這一層次的學習,當你面對一個項目的時候,應該首先把握它的總體架構的設計,以及決定採用J2EE標準中的哪些技術。
◆ 瞭解一些J2EE平台的典型案列,加深對這一技術的概念和理解。
平時可以多留意這方面,熟悉一些典型案例,分析它為什麼要採用那個時間?那樣做能達到什麼樣的目的?然後聯絡到自己身邊的項目是否可以作為參考。
◆ 學習J2EE下的各種技術。
在有了前幾階段的學習後,可以自己搭建一個J2EE平台開始具體學習每一種技術。你可以參與公司相關項目進行學習,也可以自己搭建一個平台進行學習。這時候應該找點相關的書來一步一步學習,沒有捷徑可走。如果你不滿足於這些,那麼還應該更深入地學習UML、設計模式等方面的東西。