1. 程式人生 > >學Java看什麼書?誠意推薦10本

學Java看什麼書?誠意推薦10本

本文列出的10本書在Java程式設計師界都是被認為很棒的書。當一個程式設計師開始初學Java時,他的第一個問題應該是如何選擇一本書來作為指導學習Java。這個問題也就表明,相對於其他的教程和部落格,Java書籍還是很重要的參考,主要表現在以下兩點

  • 通常書籍是由比較權威的程式設計師來撰寫的。
  • 相比其他媒介,書籍對於內容的描述更加詳細,解釋更加明確。

本文列出的10本書是我個人非常喜歡的Java書籍,當我有時間的時候,我就會將它們捧在手裡閱讀。甚至有些書我反覆讀過很多遍,每次重新讀的時候總會有新的收穫。因此這些書也是大部分Java程式設計師喜歡的書籍。

Effective Java

Effective Java

Effective Java這本書也是一本我最喜歡的。本書為領導開發Java集合框架和併發API包的 約書亞·布洛克 大神所著。本書適合於有著數年開發經驗Java程式設計師,通過本書我們可以很多程式設計中的最佳實踐,並且可以從JDK貢獻者布洛克大神這裡汲取經驗。Effective Java從質量,內容和問題解答方式上來說都是一本評價很高的書,因此讀這本書會是一種感覺很棒的體驗。另外本書的章節相對比較輕量,與其他章節耦合度較低,因此在旅行或者閒暇時間閱讀也是可以的。在內容方面,Effective Java包含了從靜態工廠,序列化,equals和hashcode到泛型,列舉,可變引數以及反射的最佳解決方法。本書對Java各方面知識點的講解會讓你受益匪淺。

Java程式設計師修煉之道

Java程式設計師修煉之道

Java程式設計師修煉之道》分為四部分,第一部分全面介紹Java 7的新特性,第二部分探討Java關鍵程式設計知識和技術,第三部分討論JVM上的新語言和多語言程式設計,第四部分將平臺和多語言程式設計知識付諸實踐。從介紹Java 7的新特性入手,《Java程式設計師修煉之道》涵蓋了Java開發中最重要的技術,比如依賴注入、測試驅動的開發和持續整合,探索了JVM上的非Java語言,並詳細講解了多語言專案, 特別是涉及Groovy、Scala和Clojure語言的專案。此外,書中含有大量程式碼示例,幫助讀者從實踐中理解Java語言和平臺。《Java程式設計師修煉之道》適合Java開發人員以及對Java7和JVM新語言感興趣的各領域人士閱讀。

Head First Java

Head First Java

Head First Java是所有程式設計或者Java初學者最適合的書籍,我很喜歡輕鬆和寓教於樂的Head First風格,這應該是最有意思的關於Java的書。無論是初級,中級還是高階都能從中有所收穫。學習本書,你可以瞭解到類,物件,執行緒,集合等程式設計知識,還可以瞭解到泛型,列舉,可變引數和自動裝箱等語言特性。本書中還涉及到了Java高階程式設計中的Swing,網路程式設計,IO操作等,可以讓初學者對Java有比較完整地概念。如果你是一位Java初學者,不要猶豫,這本書最適合你了。

Head First設計模式

Head First設計模式

Head First設計模式又是一部Head First系列的書籍。作者為Kathy Sierra及其團隊。當我在2006年開始讀這本書的時候,我對設計模式並不是很瞭解。設計模式解決什麼問題,怎麼解決問題,如何使用設計模式,設計模式有什麼好處,這些問題我幾乎都無法回答出來。但是當我讀完這本書的時候,一切都豁然開朗。在本書介紹繼承和組合一章,使用簡單有趣的例子,一步一步提出問題並解決問題,最終得出最優解。本書中會有很多要點總結,幽默對話,練習題還有有名的單詞接龍等幫助你更好地瞭解設計模式。如果你想了解Java中的設計模式,請帶走這本書。

Concurrency Practice in Java

Concurrency Practice in Java

又一部 約書亞·布洛克 大神的經典之作,當然本書的另一位主作者為 Doug Lea(影響兩次Java歷史上的大變革的大神)。這本書幾乎就是Java併發和多執行緒程式設計方面的權威,同時也是核心Java開發人員必讀的一本書。本書的強大主要表現在

  • 本書非常詳細地描述了多執行緒和併發中的諸多(小)細節。
  • 本書並非聚焦於核心Java程式碼的實現,而是關注併發引起的問題,比如死鎖,飢餓,執行緒安全,競爭條件,然後提供可行的方法來解決這些問題。因此這本書可以很好地幫助開發者瞭解並掌握併發包以及其中的CountDownLatch,CyclicBarrier,BlockingQueue,Semaphore這些類。這也是我一遍一遍閱讀這本書的原因。
  • 書中的例子簡明扼要清晰,很能描述問題。
  • 解釋明確:本書很好地解釋了什麼是錯的,為什麼錯,怎樣改正。這也是本書暢銷的原因之一。

Java Generics and Collections

Java Generics and Collections

這本書是來自O'Reilly的一本成功之作,作者為Naftalin和Philip Wadler。正如書名可知,這本書的內容關注於泛型和集合這兩個Java語言的核心方面。本書對於那些有程式設計經驗的程式設計師加強對集合和泛型的理解和掌握有很大的幫助。本書詳細介紹了每一個集合的API,Set, List, Map, Queue,以及他們的實現,對比不同場景下它們的效能優劣。每個章節最後的對比圖表很不錯。

Java performance

Java performance

本書為我個人的最愛,本書重點關注效能監視,效能剖析以及如何使用工具對效能分析。本書不同於其他的程式設計書籍,因為本書中涉及到很多Java虛擬機器的細節,垃圾回收機制,Java堆記憶體監視以及對程式效能剖析。其中講述JVM的章節寫的很不錯,很值得咀嚼。注意,這本書屬於程式設計高階層次,閱讀需要具有足夠的Java程式設計經驗。初級和中級Java開發者也可以閱讀本書也會學到不同程度的乾貨。所以,你想進行效能調優,把這本書放到你的書架上吧。

Java Puzzlers

Java Puzzlers

再介紹一本 約書亞·布洛克 大神寫的書。本書的另一位作者為Neal Gafter(已轉到微軟做Donet Compiler技術Lead)。本書講述了Java語言中的極端情況和陷阱。相對於C++,Java更加安全低風險,JVM有著垃圾回收機制,讓Java程式設計師不用關心記憶體分配和釋放,大大提高了程式的開發效率。但是有些時候,即便是經驗豐富的程式設計師也會被Java中的極端情況或陷阱給絆倒。本書列舉並詳細描述了Java中的這些陷阱。如果你喜歡刨根問底,鑽牛角尖,這本書就是為你而寫。通過本書,你可以瞭解很多java的核心知識並對自己的Java水平有所知曉。本人更加喜歡上面提到的 約書亞·布洛克 的 Effective Java 和 Concurrency Practice in Java。但是如果你感興趣,還是可以去嘗試的。為了讓收穫最大化,你可以先嚐試解決書中的問題,然後對著書中的解釋進行比較。

Head First Object Oriented Analysis and Design

Head First Object Oriented Analysis and Design

這是一本屬於Head First系列的關於面向物件程式設計的書。本書建議和Head First設計模式結合閱讀,效果更佳。本書關注於面向物件設計原則,比如多用組合少用繼承,針對介面程式設計而非針對實現程式設計,不要重複你自己等。這本書可以幫助你寫出好程式碼並且參考最佳實踐進行優化改善。當然本書中的內容也適合使用其他面向物件的語言的程式設計師。想學好面向物件編碼和設計規則,現在就開始讀這本書哈。

Thinking in Java

Thinking in Java

Thinking in Java book應該是Java中文界最有名的書籍了,中文又名 Java程式設計思想。作者為Bruce Eckel,他也是Thinking in C++的作者,他用自己很獨特的觀點講述了Java。據我所知,這本書獲得了很高的認可,本書是一本介紹齊全的Java學習參考書。如果你不喜歡Head First類似小人書那樣的講解,可以嘗試這本書。本書的內容講解詳細,成熟(相對Head First有種教科書的感覺)。

這就是我的關於Java程式設計相關的推薦的書,這些都可以說是看成經典中的經典。像Effective Java 和 Head First 系列我已經反覆閱讀了很多遍。相信看完本文,根據自己的水平和想要提升的知識側重,你應該能選出最適合自己的書了。