來自:程式員書庫(ID:OpenSourceTop)
在我成為一名程式員之前,就非常喜歡閱讀,我的書架已經有好幾百本書籍/電子書。後來步入程式設計行業,依然保留了閱讀的習慣,我讀的第一本Java書,除了大學裡的課本,就是Head first設計樣式,這本書徹底改變了我對Java和麵向物件程式設計的理解
也是從那個時候開始,我讀了大量的程式設計書籍,大部分都和Java有關,今天,我將和大家分享10本Java開發人員最應該閱讀的書籍,即使有一些可能已經過時了,但裡面的知識依然可以讓你受益。
如果你已經從事Java程式設計兩三年了,那麼你很可能已經讀過這些書了,但是,如果你沒讀過,現在就是最好的時機,我保證你一定不會後悔讀這些書
1. 《Effective Java》
推薦這本書已經見怪不怪了,幾乎所有Java書籍推薦都有它,對於任何Java程式員來說,這絕對是一本必讀的書,你將會瞭解到很多關於Java及其API的知識
Joshua Bloch自己就是幾個關鍵Java類和API的作者。比如 java.lang和Java集合框架,這就足以說服你閱讀本書,此外,他的寫作風格非常好。
你可以在閑暇時候閱讀,還有一個好訊息就是《Effective Java》出了新版本,涵蓋了Java7、8、9,所以這時候讀這本書最適合不過了。
2、《程式碼整潔之道》
對於Java程式員來說,另一個永恆的經典是《程式碼整潔之道》,正如標題一樣,它會教你如何編寫出更好的程式碼,這實際上是非常困難的
老實說,學習Java很容易,但是編寫更好的Java程式碼卻很困難,因為它使用了強大的面向物件原則
與Joshua Bloch類似,Robert C. Martin(Bob大叔),也是一名優秀的作者,他與讀者分享了他作為軟體開發人員的許多經驗,教給你各種程式設計技術和實踐,這些對程式員的日常工作有很大幫助。
3、《Java併發程式設計實戰》
多執行緒和併發是Java程式設計的一個基本部分,想要掌握這一主題,沒有比《Java併發程式設計實戰》更好的書了
儘管該書只涉及Java 5,但它仍然是任何Java開發人員都必須閱讀的相關書籍。有些人可能會發現其中的一些部分有些難以理解,特別是3.5.1到3.5.6節,這可能需要一定的併發程式設計基礎來幫助你更好地消化和理解這些主題。
4、《深入淺出設計樣式》
良好的面向物件和設計樣式知識對於編寫任何Java應用程式都很重要。本書就是該方面最好的書籍,之所以這樣說,是因為它是我讀的第一本Java書(除教科書外),你可能會覺得這是一本舊書了,不過在前幾年它已經釋出了涵蓋Java SE 8的心版本,因此它仍然值得你閱讀
5、《Spring實戰(第4版)》
如果一定要在這份書單裡推薦一本關於Spring的書籍,那一定是《Spring實戰(第4版)》,Spring是有史以來最流行的Java框架,不過現在第五版也可以購買了
在閱讀這本書的第四版之後,我知道了更多關於如何變成出更好的Java程式碼的方法,書中有個主題關於JDBC,解釋如何應對失控的JDBC程式碼,以及Spring如何修複它,例如SQLException,這是一個通用的異常,它表示某個地方出了問題,但並不確切地說什麼地方出了問題,或者如何處理這個問題。
6、《測試驅動開發》
自動化測試是一項很重要的技能,對於開發人員來說一切都是從單元測試開始的。Java從一開始就有幸擁有JUnit,但是僅僅知道這個庫並不能使你成為能夠編寫測試的專業程式員。
它需要的不僅僅是瞭解單元測試庫,比如JUnit或Mockito,這正是本書的用處所在。如果你很註重程式碼質量和編寫單元、整合和自動化測試,那麼《測試驅動》將是你在2019年要閱讀的一本書。
7、《Java效能權威指南》
成為更好的Java開發者很重要的一方面是瞭解JVM、垃圾回收和效能調優。雖然關於這個主題已經有了幾本好書,例如Binu John和Charlie Hunt的《Java效能最佳化權威指南》,但是我最喜歡Scott Oaks的《Java效能的權威指南》。儘管它只涵蓋JDK 7之前的內容,但你可以從總體上瞭解效能調優和JVM
8、《Head First Java》
有多少人是透過閱讀這本書開始學習Java的?好吧,我就是其中一個。就在我開始瞭解Head First設計樣式之後,我還發現了這本書,我從中學到了很多Java概念,我的許多錯誤概念也得到了糾正。
儘管許多人認為這是一本過時的書,但我仍然覺得它是一本適合剛開始接觸Java的人的好書,因為它獨特的內容風格。透過閱讀這本書,你可以很容易地瞭解Java 8、Java 9和Java 10在版本上的變化。
9、《深入淺出面向物件分析與設計(中文版)》
深入淺出面向物件分析與設計(中文版)和前面提到的兩本組成了“head First”書籍三部曲,它透過解釋面向物件程式設計和設計的技術,實際上是對Head – First設計樣式的補充。
10、《 Java: A Beginner’s Guide, Seventh Edition》
如果你需要一本全面的Java書籍,那麼這本書就是最好的。本書的第七版現在涵蓋了Java 9,這在技術書籍裡面能夠保持這樣的更新速度是很不容易的,但是他還是沒辦法做到讓這本書保持在最新版本,因為從Java 10開始,Java的發行週期為6個月。