Java Learning Path(四) 方法篇
Java作為一門程式設計語言,最好的學習方法就是寫代碼。當你學習一個類以後,你就可以自己寫個簡單的例子程式來運行一下,看看有什麼結果,然後再多調用幾個類的方法,看看運行結果,這樣非常直觀的把類給學會了,而且記憶非常深刻。然後不應該滿足把代碼調通,你應該想想看如果我不這樣寫,換個方式,再試試行不行。記得哪個高人說過學習編程就是個破壞的過程,把書上的例子,自己學習Documentation編寫的例子在運行通過以後,不斷的嘗試著用不同的方法實現,不斷的嘗試破壞代碼的結構,看看它會有什麼結果。通過這樣的方式,你會很徹底的很精通的掌握Java。
舉個例子,我們都編過Hello World
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
很多初學者不是很理解為什麼main方法一定要這樣來定義public static void main(String[] args),能不能不這樣寫?包括我剛學習Java的時候也有這樣的疑問。想知道答案嗎?很簡單,你把main改個名字運行一下,看看報什麼錯誤,然後根據出錯資訊進行分析;把main的public取掉,在試試看,報什麼錯誤;static去掉還能不能運行;不知道main方法是否一定要傳一個String[]數組的,把String[]改掉,改成int[],或者String試試看;不知道是否必須寫args參數名稱的,也可以把args改成別的名字,看看運行結果如何。
我當初學習Java的時候就是這樣做的,把Hello World程式反覆改了七八次,不斷運行,分析運行結果,最後就徹底明白為什麼了main方法是這樣定義的了。
此外,我對於staic,public,private,Exception,try{ }catch {}finally{}等等等等一開始都不是很懂,都是把參考書上面的例子運行成功,然後就開始破壞它,不斷的根據自己心裏面的疑問來重新改寫程式,看看能不能運行,運行出來是個什麼樣子,是否可以得到預期的結果。這樣雖然比較費時間,不過一個例子程式這樣反覆破壞幾次之後。我就對這個相關的知識徹底學通了。有時候甚至故意寫一些錯誤的代碼來運行,看看能否得到預期的運行錯誤。這樣對於編程的掌握是及其深刻的。
其中特別值得一提的是JDK有一個非常棒的調試功能,-verbose
java ?Cverbose
javac ?Cverbose 以及其它很多JDK工具都有這個選項
-verbose 可以顯示在命令執行的過程中,JVM都依次載入哪裡Class,通過這些寶貴的調試資訊,可以協助我們分析出JVM在執行的過程中都幹了些什麼。
另外,自己在學習過程中,寫的很多的這種破壞常式,應該有意識的分門別類的儲存下來,在工作中積累的典型常式也應該定期整理,日積月累,自己就有了一個程式碼程式庫了。遇到類似的問題,到程式碼程式庫裡面 Copy & Paste ,Search & Replace,就好了,極大提高了開發速度。最理想的情況是把一些通用的常式自己再抽象一層,形成一個通用的類庫,封裝好。那麼可複用性就更強了。
所以我覺得其實不是特別需要常式的,自己寫的破壞常式就是最好的例子,如果你實在對自己寫的代碼不放心的話,我強烈推薦你看看JDK基礎類庫的Java原始碼。在JDK安裝目錄下面會有一個src.zip,解開來就可以完整的看到整個JDK基礎類庫,也就是rt.jar的Java原始碼,你可以參考一下Sun是怎麼寫Java程式的,規範是什麼樣子的。我自己在學習Java的類庫的時候,當有些地方理解的不是很清楚的時候,或者想更加清晰的理解運作的細節的時候,往往會開啟相應的類的原始碼,通過看原始碼,所有的問題都會一掃而空。
Java Learning Path(五)資源篇
1、 http://java.sun.com/ (英文)
Sun的Java網站,是一個應該經常去看的地方。不用多說。
2、 http://www-900.ibm.com/developerWorks/cn/
IBM的developerWorks網站,英語好的直接去英文主要站台看。這裡不但是一個極好的物件導向的分析設計網站,也是Web Services,Java,Linux極好的網站。強烈推薦!!!
3、 http://www.java-cn.com/ (中文)
JAVA中文站,目前國內資料最全、會員最多的JAVA技術網站,人氣極高。有《JAVA電子書庫》、《JAVA視頻庫》(國內唯一)、《JAVA技術文摘庫》、《JAVA原始碼庫》、《JAVA工具庫》、《招聘求職廣場》等主要欄目,還有一些專家欄目。目前會員有5萬多,VIP會員近1000人。無論是菜鳥還是老鳥,都能在此網站中找到自己所需要的東東!! 最強烈推薦!!!!!!
4、 http://www.javaworld.com/ (英文)
關於Java很多新技術的討論和新聞。想多瞭解Java的方方面面的應用,這裡比較好。
5、 http://dev2dev.bea.com.cn/index.jsp
BEA的開發人員園地,BEA作為最重要的App Server廠商,有很多獨到的技術,在Weblogic上做開發的朋友不容錯過。
6、 http://www.huihoo.com/
灰狐動力網站,一個專業的中介軟體網站,雖然不是專業的Java網站,但是在J2EE公司專屬應用程式技術方面有深厚的造詣。
7、 http://www.theserverside.com/home/ (英文)
TheServerSide是一個著名的專門面向Java Server端應用的網站。
8、 http://www.javaresearch.org/
Java研究組織,有很多優秀的Java方面的文章和教程,特別是在JDO方面的文章比較豐富。
9、 http://www.cnjsp.org/
JSP技術網站,有相當多的Java方面的文章和資源。
10、 http://www.jdon.com/
Jdon論壇,是一個個人性質的中文J2EE專業技術論壇,在眾多的Java的中文論壇中,Jdon一個是技術含量非常高,文章品質非常好的論壇。
11、 http://sourceforge.net/
SourgeForge是一個開放原始碼軟體的大本營,其中也有非常非常豐富的Java的開放原始碼的著名的軟體。