Java學(xué)習(xí)路徑-過程篇書籍篇

字號:

Java學(xué)習(xí)路徑(二)書籍篇
     學(xué)習(xí)一門新的知識,不可能指望只看一本,或者兩本書就能夠完全掌握。需要有一個循序漸進(jìn)的閱讀過程。我推薦Oreilly出版的Java系列書籍。
     在這里我只想補(bǔ)充一點看法,很多人學(xué)習(xí)Java是從《Thinking in Java》這本書入手的,但是我認(rèn)為這本書是不適合初學(xué)者的。我認(rèn)為正確的使用這本書的方法應(yīng)該是作為輔助的讀物?!禩hinking in Java》并不是在完整的介紹Java的整個體系,而是一種跳躍式的寫作方法,是一種類似tips的方法來對Java很多知識點進(jìn)行了深入的分析和解釋。
     對于初學(xué)者來說,是找一本Java入門的書籍,但是比較完整的循序的介紹Java的語法,面向?qū)ο蟮奶匦?,核心類庫等等,在看這本書的同時,可以同步來看《Thinking in Java》,來加深對Java的理解和原理的運(yùn)用,同時又可以完整的了解Java的整個體系。
     對于Java的入門書籍,蔡學(xué)鏞推薦的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(針對C 背景)》,我并沒有看過這兩本書。其實我覺得電子工業(yè)出版社的《Java 2編程詳解》或者《Java 2從入門到精通》就很不錯。
     在所有的Java書籍當(dāng)中,其實最最有用的,并不是O'reilly的 Java Serials,真正最最有用處是JDK的Documentation!幾乎你想獲得的所有的知識在Documentation里面全部都有,其中最主要的部分當(dāng)然是Java基礎(chǔ)類庫的API文檔,是按照package來組織的,對于每一個class都有詳細(xì)的解釋,它的繼承關(guān)系,是否實現(xiàn)了某個接口,通常用在哪些場合,還可以查到它所有的public的屬性和方法,每個屬性的解釋,意義,每個方法的用途,調(diào)用的參數(shù),參數(shù)的意義,返回值的類型,以及方法可能拋出的異常等等??梢赃@樣來說,所有關(guān)于Java編程方面的書籍其實都不過是在用比較通俗易懂的語言,和良好的組織方式來介紹Documentation里面的某個package里面包含的一些類的用法而已。所以萬變不離其宗,如果你有足夠的能力來直接通過Documentation來學(xué)習(xí)Java的類庫,那么基本上就不需要看其他的書籍了。除此之外,Documentation也是編程必備的手冊,我的桌面上有三個Documentation的快捷方式,分別是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了這個三個Documentation,什么其他的書籍都不需要了。
     對于Java Web 編程來說,最核心的是要熟悉和掌握HTTP協(xié)議,這個就和Java無關(guān)了,在熟悉HTTP協(xié)議之后,就需要熟悉Java的實現(xiàn)HTTP協(xié)議的類庫,也就是Servlet API,所以最重要的東西就是Servlet API。當(dāng)然對于初學(xué)者而言,直接通過Servlet API來學(xué)習(xí)Web編程有很大的難度,我推薦O'reilly的《Java Server Pages 》這本書來學(xué)習(xí)Web 編程。
     EJB的書籍當(dāng)中,《Enterprise Java Beans?, 2nd Edition》是一本很不錯的書, EJB的學(xué)習(xí)門檻是比較高,入門很難,但是這本書完全降低了學(xué)習(xí)的難度,特別重要的一點是,EJB的學(xué)習(xí)需要結(jié)合一種App Server的具體實現(xiàn),所以在學(xué)習(xí)EJB的同時,必須同步的學(xué)習(xí)某種App Server,而這本書相關(guān)的出了三本書,分別是Weblogic6.1,Websphere4.0和JBoss3.0上面部署書中例子的實做。真是既有理論,又有實踐。在學(xué)習(xí)EJB的同時,可以邊看邊做,EJB的學(xué)習(xí)會變得很輕松。
     但是這本書也有一個問題,就是版本比較舊,主要講EJB1.1規(guī)范和部分EJB2.0的規(guī)范。而Ed Roman寫的《Mastering EJB 2.0》這本書完全是根據(jù)EJB2.0規(guī)范寫的,深入淺出,覆蓋了EJB編程的各個方面,并且還有很多編程經(jīng)驗tips,也是學(xué)習(xí)EJB非常推薦的書籍之一。
     如果是結(jié)合Weblogic來學(xué)習(xí)J2EE的話,《J2EE應(yīng)用與BEA Weblogic Server》絕對是首選讀物,雖然是講述的Weblogic6.0,仍然值得購買,這本書是BEA官方推薦的教材,作者也是BEA公司的工程師?,F(xiàn)在中文版已經(jīng)隨處可見了。這本書結(jié)合Weblogic介紹了J2EE各個方面的技術(shù)在Weblogic平臺上的開發(fā)和部署,實踐指導(dǎo)意義非常強(qiáng)。
     在掌握了Java平臺基礎(chǔ)知識和J2EE方面的知識以后,更進(jìn)一步的是學(xué)習(xí)如何運(yùn)用OO的方法進(jìn)行軟件的設(shè)計,那么就一定要學(xué)習(xí)“設(shè)計模式”。Sun公司出版了一本《J2EE核心模式》,是每個開發(fā)Java企業(yè)平臺軟件的架構(gòu)師必備的書籍。這本書全面的介紹了J2EE體系架構(gòu)的各種設(shè)計模式,是設(shè)計師的必讀書籍。
    Java學(xué)習(xí)路徑(三)過程篇
     每個人的學(xué)習(xí)方法是不同的,一個人的方法不見得適合另一個人,我只能是談自己的學(xué)習(xí)方法。因為我學(xué)習(xí)Java是完全自學(xué)的,從來沒有問過別人,所以學(xué)習(xí)的過程基本上完全是自己摸索出來的。我也不知道這種方法是否是比較好的方法,只能給大家提供一點參考了。
     學(xué)習(xí)Java的 第一步 是安裝好JDK,寫一個Hello World, 其實JDK的學(xué)習(xí)沒有那么簡單,關(guān)于JDK有兩個問題是很容易一直困擾Java程序員的地方:一個是CLASSPATH的問題,其實從原理上來說,是要搞清楚JRE的ClassLoader是如何加載Class的;另一個問題是package和import問題,如何來尋找類的路徑問題。把這兩個問題摸索清楚了,就掃除了學(xué)習(xí)Java和使用JDK的障礙。推薦看一下王森的《Java深度歷險》,對這兩個問題進(jìn)行了深入的探討。
    第二步是學(xué)習(xí)Java的語法。 Java的語法是類C 的,基本上主流的編程語言不是類C,就是類C 的,沒有什么新東西,所以語法的學(xué)習(xí),大概就是半天的時間足夠了。需要注意的是有幾個不容易搞清楚的關(guān)鍵字的用法,public,protected,private,static,什么時候用,為什么要用,怎么用,這可能需要有人來指點一下,我當(dāng)初是完全自己琢磨出來的,花了很久的時間。不過后來我看到《Thinking in Java》這本書上面是講了這些概念的。
    第三步是學(xué)習(xí)Java的面向?qū)ο蟮木幊陶Z言的特性的地方。 比如繼承,構(gòu)造器,抽象類,接口,方法的多態(tài),重載,覆蓋,Java的異常處理機(jī)制。對于一個沒有面向?qū)ο笳Z言背景的人來說,我覺得這個過程需要花很長很長時間,因為學(xué)習(xí)Java之前沒有C 的經(jīng)驗,只有C的經(jīng)驗,我是大概花了一個月左右吧,才徹底把這些概念都搞清楚,把書上面的例子反復(fù)的揣摩,修改,嘗試,把那幾章內(nèi)容反復(fù)的看過來,看過去,看了不下5遍,才徹底領(lǐng)悟了。不過我想如果有C 經(jīng)驗的話,應(yīng)該一兩天時間足夠了。那么在這個過程中,可以多看看《Thinking in Java》這本書,對面向?qū)ο蟮闹v解非常透徹??上У氖俏覍W(xué)習(xí)的時候,并沒有看到這本書,所以自己花了大量的時間,通過自己的嘗試和揣摩來學(xué)會的。
    第四步就是開始熟悉Java的類庫。 Java的基礎(chǔ)類庫其實就是JDK安裝目錄下面jre\lib\rt.jar這個包。學(xué)習(xí)基礎(chǔ)類庫就是學(xué)習(xí)rt.jar?;A(chǔ)類庫里面的類非常非常多。據(jù)說有3000多個,我沒有統(tǒng)計過。但是真正對于我們來說最核心的只有4個,分別是
     java.lang.*;
     java.io.*;
     java.util.*;
     java.sql.*;
     這四個包的學(xué)習(xí),每個包的學(xué)習(xí)都可以寫成一本厚厚的教材,而O'reilly也確實是這樣做的。我覺得如果時間比較緊,是不可能通過讀四本書來學(xué)習(xí)。