Joshua Bloch是Google公司的首席Java架構師。是Jolt大奬的獲得者。他曾是Sun公司的傑齣工程師,和Transarc公司的高級係統設計師。Bloch曾帶領團隊設計和實現過無數的Java平颱特性,包括JDK 5.0語言增強版和獲奬的Java Collections Framework。他的著作還包括:《Java Puzzlers》、《Java Concurrency in Practive》等。
譯者序
序
前言
緻謝
第1章 引言
第2章 創建和銷毀對象
第1條:考慮用靜態工廠方法代替構造器
第2條:遇到多個構造器參數時要考慮用構建器
第3條:用私有構造器或者枚舉類型強化Singleton屬性
第4條:通過私有構造器強化不可實例化的能力
第5條:避免創建不必要的對象
第6條:消除過期的對象引用
第7條:避免使用終結方法
第3章 對於所有對象都通用的方法
第8條:覆蓋equals時請遵守通用約定
第9條:覆蓋equals時總要覆蓋hashCode
第10條:始終要覆蓋toString
第11條:謹慎地覆蓋clone
第12條:考慮實現Comparable接口
第4章 類和接口
第13條:使類和成員的可訪問性最小化
第14條:在公有類中使用訪問方法而非公有域
第15條:使可變性最小化
第16條:復閤優先於繼承
第17條:要麼為繼承而設計,並提供文檔說明,要麼就禁止繼承
第18條:接口優於抽象類
第19條:接口隻用於定義類型
第20條:類層次優於標簽類
第21條:用函數對象錶示策略
第22條:優先考慮靜態成員類
第5章 泛型
第23條:請不要在新代碼中使用原生態類型
第24條:消除非受檢警告
第25條:列錶優先於數組
第26條:優先考慮泛型
第27條:優先考慮泛型方法
第28條:利用有限製通配符來提升API的靈活性
第29條:優先考慮類型安全的異構容器
第6章 枚舉和注解
第30條:用enum代替int常量
第31條:用實例域代替序數
第32條:用EnumSet代替位域
第33條:用EnumMap代替序數索引
第34條:用接口模擬可伸縮的枚舉
第35條:注解優先於命名模式
第36條:堅持使用Override注解
第37條:用標記接口定義類型
第7章 方法
第38條:檢查參數的有效性
第39條:必要時進行保護性拷貝
第40條:謹慎設計方法簽名
第41條:慎用重載
第42條:慎用可變參數
第43條:返迴零長度的數組或者集閤,而不是:null
第44條:為所有導齣的API元素編寫文檔注釋
第8章 通用程序設計
第45條:將局部變量的作用域最小化
第46條:for-each循環優先於傳統的for循環
第47條:瞭解和使用類庫
第48條:如果需要精確的答案,請避免使用float和double
第49條:基本類型優先於裝箱基本類型
第50條:如果其他類型更適閤,則盡量避免使用字符串
第51條:當心字符串連接的性能
第52條:通過接口引用對象
第53條:接口優先於反射機製
第54條:謹慎地使用本地方法
第55條:謹慎地進行優化
第56條:遵守普遍接受的命名慣例
第9章 異常
第57條:隻針對異常的情況纔使用異常
第58條:對可恢復的情況使用受檢異常,對編程錯誤使用運行時異常
第59條:避免不必要地使用受檢的異常
第60條:優先使用標準的異常
第61條:拋齣與抽象相對應的異常
第62條:每個方法拋齣的異常都要有文檔
第63條:在細節消息中包含能捕獲失敗的信息
第64條:努力使失敗保持原子性
第65條:不要忽略異常
第10章 並發
第66條:同步訪問共享的可變數據
第67條:避免過度同步
第68條:executor和task優先乾綫程
第69條:並發工具優先於wait和notify
第70條:綫程安全性的文檔化
第71條:慎用延遲初始化
第72條:不要依賴於綫程調度器
第73條:避免使用綫程組
第11章 序列化
第74條:謹慎地實現Serializable接口
第75條:考慮使用自定義的序列化形式
第76條:保護性地編寫readObject方法
第77條:對於實例控製,枚舉類型優先於readResolve
第78條:考慮用序列化代理代替序列化實例
附錄 第1版與第2版條目對照
中英文術語對照
參考文獻
· · · · · · (
收起)
本書介紹瞭在Java編程中78條極具實用價值的經驗規則,這些經驗規則涵蓋瞭大多數開發人員每天所麵臨的問題的解決方案。通過對Java平颱設計專傢所使用的技術的全麵描述,揭示瞭應該做什麼,不應該做什麼纔能産生清晰、健壯和高效的代碼。
本書中的每條規則都以簡短、獨立的小文章形式齣現,並通過例子代碼加以進一步說明。本書內容全麵,結構清晰,講解詳細。可作為技術人員的參考用書。
Effective java 中文版(第2版) 下載 mobi epub pdf txt 電子書
評分
☆☆☆☆☆
評分
☆☆☆☆☆
##就內容來說還是相當不錯的,翻譯也挺好的不會有拗口的感覺.紙質有很多人抱怨過瞭我就不重復說瞭.不過對閱讀不影響,反正是學裏麵的東西又不是衝著紙去的.不過話說迴來有點小貴啊
評分
☆☆☆☆☆
##《Effective Java》是一本什麼樣的作品,相信也不用我去多闡述瞭,網上大堆的評價。而剛剛聽到這本書的朋友們都應該是被朋友推薦所以纔看的。 說迴自己的感想,無論這本中文版紙質如何,也隻能說對於英語水平不高的朋友們的唯一選擇。但也這樣說吧,在沒得選擇的情況下我纔會...
評分
☆☆☆☆☆
評分
☆☆☆☆☆
##搞得我想對譯者進行人身攻擊 第16條第47條連大標題都翻譯錯瞭。第16條 In public classes,use accessor methods,not public fields。明顯是倡議使用訪問方法,不要直接暴露成員。結果標題翻譯成瞭要在公有類而非公有域中使用訪問方法,匪夷所思。我覺得就算讓初中生來翻譯結閤...
評分
☆☆☆☆☆
##敗給翻譯瞭,完全看不下去
評分
☆☆☆☆☆
##重新開始讀,覺得翻譯太爛瞭。。。
評分
☆☆☆☆☆
##保持Effective係列水平,對Java進階提升很有幫助。可惜內容比較舊瞭,中文翻譯也不太理想。 (2015.6.2jd) 序言 零散地讀完《Effective Java》(中文版第二版),真心覺得這是一本經典書籍。現在想寫一下讀完這本書的整體收獲,而不是涉及到書中某一個具體的知識點。 收獲 在重點或疑問的地方,做齣標記和注釋 在讀《Effective Java》時,對於前10條建議,我並沒有理解得很深刻,...
評分
☆☆☆☆☆
##每種語言都有一個“Effective guide”,對於Java,那就是這本《Effective Java》。 這是一本實用至上的書,78條建議,滿滿的乾貨。每一條都說明瞭為什麼最好這樣。這些經驗,都是對大量的程序項目進行反思時逐漸形成的。對於Java這種極為健全乃至有點過於豐滿的語言,這樣一本...