【转】推荐给初级Java程序员的3本进阶书
ImportNew 注: 原作者在這篇文章中介紹3本不錯的技術書籍。作者認為這些書籍對新手或者學生而言尤其有幫助。通過一些基礎性的教程入門后,我們可以使用Java做基礎性的編程。然而,當我們需要從初級提升更高的一個層次時,大多數的人卻不知道從何入手。一些好的書籍在這個階段可以很好地幫助初級開發人員。
?
?
《Head First設計模式》
這本書介紹 GoF 常用設計模式的方式引人入勝。如果只看封面很難看出來這是一本技術書籍,更不用說這本技術書籍介紹的還是面向對象編程的一些很有用的技巧。這本書采用 Kathy Sierra 式編寫風格:雖然她的博客已經關了,但是還是能從前面這個鏈接看到一些她的文章,建議讀一讀。如果你周圍有人認為設計模式沒有什么用處,這本書倒是能夠讓他們改變看法。個人而言,我認為經典的 GoF 手冊是一個很好的參考,但它并不是專為新手準備的。因此強烈推薦在校生(包括那些不清楚組合模式是什么的程序員們)閱讀此書。
書中介紹的設計模式是程序開發中比較基本的編程模式,也是面向對象編程的程序員應該了解和掌握的。接下來要介紹的這本書則更偏向于Java語言本身,這也是我日常使用的編程語言。
?
《Effective Java中文版》第二版
每個Java程序員的書桌上都應該放有這本書。讓我們先了解下作者:
Joshua Bloch是Google公司的首席Java設計師,并且也是一位Jolt 獎獲得者。他之前是Sun的一位杰出工程師(distinguished engineer),也是Transarc公司的一個資深系統設計師。Bloch主導了眾多基于Java平臺的軟件系統的設計和實現,包括JDK5.0的功能加強以及獲得過獎項的Java集合框架的設計實現。他同時也參與編寫了《Java解惑 | Java Puzzlers》 和《Java并發編程實戰 | Java Concurrency in Practice》這兩本技術書。
就憑“Java集合框架開發者”這個稱號,我們就應該認真聽取這位值得尊敬的程序員的建議。這些建議在這本書中組織成78個點:讀者可以按照自己的速度進行閱讀。
- 在復寫equals和hashcode方法時,我們應該遵循什么規則?
- 不可變類(immutable class)是什么?
- 在特定的情況下,應當選用哪種最相關的異常類型?運行時異常(Runtime exception)還是可捕獲異常(checked exception)?
- 對于一個托管語言(managed language,詳細請參考 wiki介紹),如何在混淆編譯時保留(preserve)類的成員?
上面所有的問題(也包括其他74個)都有實用主義者Joshua Bloch的詳細解釋。讀完這本書,程序員應該能意識到使用Findbugs、Checkstyle這些工具的必要性了。
?
《Java并發編程實戰》
一年前我正努力在做 UI 開發工作時(在Eclipse 插件中使用SWT/JFace,其他一些項目則使用Swing ),就看了這本書。那時,我想了解如何實現一個快速響應的UI,從而能給用戶更好的使用體驗。我知道自己寫線程安全的代碼是非常復雜的,盡管運行時間長的操作通常是一個獨立的線程。UI開發和多核系統應用開發是學習如何開發線程安全的軟件系統的一個很好的理由。
這本書的作者如下:Brian Goetz,Joshua Bloch(又出現這位大牛了,我們剛提到過,還記得嗎?), Doug Lea(java.util.concurrent包的開發者), David Holmes,Tim Peierls 和Joseph Bowbeer。
這本書的風格非常直接,有的代碼在非線程安全的環境下表現不錯,可一旦到了線程安全的環境下就變得十分的危險。接著,這本書介紹了基本的保證線程安全的機制:同步機制,volatile關鍵字等。本書還有對java.util.concurrent接口的介紹,你可以根據自己的需要來選擇適合的并發集合類。這本書也介紹了程序運行時的錯誤管理,以及如何測試代碼是否是線程安全的。而且書中還提供了說明性的注釋(Annotation)(下載),這些注釋通過了FindBugs的檢查!
?
還有其它推薦嗎?
其實還有不少書值得推薦,不過現在我優先討論這三本。如果你一本都還從沒讀過,那么我建議你按照本文介紹順序進行閱讀。好啦,你喜歡的技術書籍有哪些呢?
-- 掃描加關注,微信號: importnew --
英文原文:coderfriendly,編譯:ImportNew - 鄭雯
譯文鏈接: http://www.importnew.com/692.html
【如需轉載,請在正文中標注并保留原文鏈接、譯文鏈接和譯者等信息,謝謝合作!】
轉載于:https://www.cnblogs.com/dwf07223/p/3226608.html
總結
以上是生活随笔為你收集整理的【转】推荐给初级Java程序员的3本进阶书的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu 4614 线段树
- 下一篇: Js移位负数的问题