在這篇文章中介紹3本不錯的技術(shù)書籍。動力節(jié)點的Java老師認(rèn)為這些書籍對新手或者學(xué)生而言尤其有幫助。通過一些基礎(chǔ)性的教程入門后,我們可以使用Java做基礎(chǔ)性的編程。然而,當(dāng)我們需要從初級提升更高的一個層次時,大多數(shù)的人卻不知道從何入手。一些好的書籍在這個階段可以很好地幫助初級開發(fā)人員。
《Head First設(shè)計模式》
這本書介紹 GoF 常用設(shè)計模式的方式引人入勝。如果只看封面很難看出來這是一本技術(shù)書籍,更不用說這本技術(shù)書籍介紹的還是面向?qū)ο缶幊痰囊恍┖苡杏玫募记伞_@本書采用 Kathy Sierra 式編寫風(fēng)格:雖然她的博客已經(jīng)關(guān)了,但是還是能從前面這個鏈接看到一些她的文章,建議讀一讀。如果你周圍有人認(rèn)為設(shè)計模式?jīng)]有什么用處,這本書倒是能夠讓他們改變看法。 GoF 手冊是一個很好的參考,但它并不是專為新手準(zhǔn)備的。因此強(qiáng)烈推薦在校生(包括那些不清楚組合模式是什么的程序員們)閱讀此書。
書中介紹的設(shè)計模式是程序開發(fā)中比較基本的編程模式,也是面向?qū)ο缶幊痰某绦騿T應(yīng)該了解和掌握的。
《Effective Java中文版》第二版
每個Java程序員的書桌上都應(yīng)該放有這本書。讓我們先了解下作者:
Joshua Bloch是Google公司的Java設(shè)計師,并且也是一位Jolt 獎獲得者。他之前是Sun的一位杰出工程師(distinguished engineer),也是Transarc公司的一個大神級系統(tǒng)設(shè)計師。Bloch主導(dǎo)了眾多基于Java平臺的軟件系統(tǒng)的設(shè)計和實現(xiàn),包括JDK5.0的功能加強(qiáng)以及獲得過獎項的Java集合框架的設(shè)計實現(xiàn)。他同時也參與編寫了《Java解惑 | Java Puzzlers》 和《Java并發(fā)編程實戰(zhàn) | Java Concurrency in Practice》這兩本技術(shù)書。
就憑“Java集合框架開發(fā)者”這個稱號,我們就應(yīng)該認(rèn)真聽取這位值得尊敬的程序員的建議。這些建議在這本書中組織成7 8個點:讀者可以按照自己的速度進(jìn)行閱讀。
在復(fù)寫equals和hashcode方法時,我們應(yīng)該遵循什么規(guī)則?
不可變類(immutable class)是什么?
在特定的情況下,應(yīng)當(dāng)選用哪種更相關(guān)的異常類型?運(yùn)行時異常(Runtime exception)還是可捕獲異常(checked exception)?
對于一個托管語言(managed language,詳細(xì)請參考 wiki介紹),如何在混淆編譯時保留(preserve)類的成員?
上面所有的問題(也包括其他74個)都有實用主義者Joshua Bloch的詳細(xì)解釋。讀完這本書,程序員應(yīng)該能意識到使用Findbugs、Checkstyle這些工具的必要性了。
《Java并發(fā)編程實戰(zhàn)》
這本書的作者如下:Brian Goetz,Joshua Bloch(又出現(xiàn)這位大牛了,我們剛提到過,還記得嗎?), Doug Lea(java.util.concurrent包的開發(fā)者), David Holmes,Tim Peierls 和Joseph Bowbeer。
這本書的風(fēng)格非常直接,有的代碼在非線程安全的環(huán)境下表現(xiàn)不錯,可一旦到了線程安全的環(huán)境下就變得十分的危險。接著,這本書介紹了基本的保證線程安全的機(jī)制:同步機(jī)制,volatile關(guān)鍵字等。本書還有對java.util.concurrent接口的介紹,你可以根據(jù)自己的需要來選擇適合的并發(fā)集合類。這本書也介紹了程序運(yùn)行時的錯誤管理,以及如何測試代碼是否是線程安全的。而且書中還提供了說明性的注釋(Annotation)(下載),這些注釋通過了FindBugs的檢查!
更多Java培訓(xùn),Java視頻,Java教程盡在動力節(jié)點Java培訓(xùn),關(guān)注動力節(jié)點官方微信,獲得一手Java全新知識。