一直有這麼個想法,列一下我我的認爲在學習和使用Java過程當中能夠推薦一讀的書籍,給初學者或者想深刻的朋友一些建議,幫助成長。推薦的的都是我本身讀過,也會推薦一些朋友讀過而且口碑不錯的書籍。java
1、基礎類
一、《Thinkinginjava》,入門第一位是創建正確的概念。
二、《CoreJava》,我沒系統讀過,這本書更貼近實踐,更多API的介紹,一樣,更新也更頻繁。程序員
2、進階類
一、《EffectiveJava》,在熟悉語法、API以後,你須要知道最佳實踐和陷阱,沒有比這本更好的。
二、《JavaPuzzlers》,經過謎題介紹一些你可能沒有注意到的邊角料,做爲趣味讀物也不錯
三、《深刻Java虛擬機》,翻譯通常,但不可不讀,最好結合最新的JVM規範來讀。web
3、特定領域
一、網絡編程:
(1)O’Reilly的《Javanio》,不少人都推薦,我我的覺的通常,基本上只是個API更詳細的說明文檔,O’reilly的java系列不少都是這樣。
(2)我更推薦這本《Fundamentalnetworkinginjava》,由淺入深教你怎麼作java網絡編程,而且介紹不少背景知識,甚至介紹了各類最佳實踐、網絡編程模型以及Javasocket在不一樣平臺之間的差別等等。算法
二、併發編程:
(1)《JavaConcurrencyinPractic》,併發領域必讀經典。
(2)《Java併發編程:設計原則與模式》,一樣是Douglea的做品。
(3)《javathreads》,入門讀物。編程
三、web編程,這塊我許久未接觸了,就不推薦了,有興趣的朋友能夠補充下。設計模式
4、模式與設計網絡
一、《設計模式》,GOF的經典。
二、《設計模式精解》,應該有最新版,我的認爲更適合入門。
三、《Headfirst設計模式》,更輕鬆的入門讀物。
四、《企業應用架構模式》
五、《分析模式——可複用對象模型》
六、《面向模式的軟件體系結構》,國內貌似翻譯了3卷,絕對經典,惋惜翻譯較差。
七、《重構——改善既有代碼設計》,想寫好代碼必讀。
八、《重構與模式》架構
5、方法論
一、《敏捷軟件開發》
二、《測試驅動開發》,你不必定要TDD,可是你必定要學會作單元測試。
三、《AgileJava》,也能夠做爲java入門讀物。
四、《快速軟件開發》
五、《面向對象分析與設計》,OO設計必讀。
六、《Unix編程藝術》,打開你的眼界。併發
6、Java以外socket
一、《unix網絡編程》,學習網絡編程必讀書。二、《C++網絡編程》上下兩卷,介紹ACE的,可是其中對各類模式運用的介紹很是值的一讀。三、《Joel說軟件》,編程文化四、《人月神話》、《人件》五、《卓有成效的程序員》,給我很大啓發的一本書。六、《程序員修煉之道》七、《計算機程序的構造與解釋》,必讀八、《算法導論》,能夠做爲參考書九、《深刻理解計算機系統》十、《編譯原理》龍書,最新版用java解釋,我沒有讀完,順便提下。