Thinking In Java 4th Edition
  Bruce Eckel/著
  Prentice Hall出版
  售價:59.99美元


Java程式語言書籍中,《Thinking In Java》是廣為人知且讀者相當眾多的一本好書。在今年,本書堂堂推出了第四版。一路走來,不僅見證了Java持續性的演化進程,同時也印證了本書歷久不衰的受歡迎程度及地位。

主題設定優異
本書無疑是本佳作。做為一本Java核心語言的介紹書籍,本書在主題的安排上並未發散。它專注在Java語言本身的核心機制,諸如:類別與物件、運算子及程式執行流程控制、物件初始化行為、多型等等。相較於許多企圖在同一本書中塞入太多主題的Java入門書而言,本書專注在語言核心的結果十分明顯。另一方面,雖說主題聚焦,但需要涉及的主題卻相當完備,除了基礎的主題之外,諸如容器、I/O、多執行緒、GUI等等,樣樣不缺。

觀念與實務並重
每一項主題,在介紹Java語言的相關機制之前,必定介紹該主題的基本觀念。例如,在介紹Java的異常處理機制之前,本書先行探討程式設計活動中對錯誤處理的基本觀念,例如在傳統程序式程式語言下處理錯誤的方式、異常捕捉的架構下的錯誤處理,以及如此處理的好處為何等。

當然,每個主題的重頭戲便是Java對該主題下機制的種種支援。例如,在程式流程控制的主題中,便詳細的介紹了Java中對條件流程控制以及迴圈控制的種種機制與支援,作者精心設計了許多範例,往往能透過這些範例彰顯出許多Java獨特的行為與表現。

除了解釋How以外,也告訴你Why
除了介紹Java本身的機制如何支援某些觀念外,作者也探討為何Java要如此設計。例如,垃圾回收器的設計,乃是針對C/C++中程式員往往因為處理記憶體配置與釋放的疏失而引發記憶體洩露的臭蟲,而這類型的錯誤嚴重影響到使用C/C++開發軟體時的生產力。這讓讀者有機會明白到,除了How之外的Why。這自然會進入到語言本身設計上的哲學議題。為什麼C++這麼做,但Java不這麼做?C++重視的是效率,而Java重視的是彈性,許多設計上決策的取捨往往都奠基於此。這麼一來,本書的內容由淺至深皆已涵蓋,不同程度的讀者於其中皆能有所獲。

應Java SE 5而生
正因為本書具備許多吸引讀者之處,使得本書一直是銷售上的常青樹,也才會陸續的推出新的版本。每一個版本的內容,都隨著Java持續的演化增加而變化。這次推出的第四版,其內容最主要的增加處,便是因應Java SE 5的誕生。

無疑的,在.NET與C#推出後,雖說C#從Java中借鏡許多,卻也針對Java的缺失進行了反省。而在Java SE5的功能制定上,則又從C#中擷取部份的設計。而在Thinking In Java的第四版中,作者花費了許多心力解說Java SE5中的新設計。最顯著的設計莫過於泛型(generics)了。在第四版中,作者特別以一章的篇幅來介紹新穎的泛型支援。其中包括了與C++的比較,Java本身對於泛型的支援方式以及機制的內容、如何運用Java操控泛型,甚至進一步討論泛型機制下的種種議題,包括:如何解決Java基礎型別無法做為泛型之型別參數的問題、如何實作參數化的介面等等。

除了泛型外,例如「註解(Annotation)」的機制,以及列舉型別等Java SE 5的新功能,在第四版中都分別以一章的篇幅介紹。此外,Java SE 5在程式的並行性支援上,增加了java.util.concurrent這個Package,透過這個Package,在原先僅在執行緒的層次上,提供了更完善、更複雜的並行性支援。這些支援當然在第四版中,做了十分詳盡的介紹。

初學者或進階使用者都值得擁有
第四版承繼了前三個版本優良的血統,同樣具備極高的可讀性與收藏價值。不論是Java的初學者或進階使用者都值得擁有。

《作者簡介》王建興
清華大學資訊工程系的博士研究生,研究興趣包括電腦網路、點對點網路、分散式網路管理、以及行動式代理人,專長則是網路應用系統的開發。曾參與過的開發專案性質十分廣泛而且不同,從ERP、電腦遊戲到P2P網路電話都在他的涉獵範圍之內。

熱門新聞

Advertisement