天天看點

Java名著《Effecive Java》第二版中英文版加源代碼下載下傳

​​

Java名著《Effecive Java》第二版中英文版加源代碼下載下傳

​​​

該 書介紹了在java程式設計中78條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。通過對java平台設計專家所使用的技術的全面描述,揭示了應該做什麼,不應該做什麼才能産生清晰、健壯和高效的代碼。  書中的每條規則都以簡短、獨立的小文章形式出現,并通過例子代碼加以進一步說明。本書内容全面,結構清晰,講解詳細。可作為技術人員的參考用書。

Java之父 James Gosling這樣評價該書:我很希望10年前就擁有這本書。可能有人認為我不需要任何Java方面的書籍,但是我需要這本書。

作者:(美國)Joshua Bloch 譯者:楊春花 俞黎敏

Joshua Bloch,是Google公司的首席Java架構師。是Jolt大獎的獲得者。他曾是Sun公司的傑出工程師。Bloch曾帶領團隊設計和實作過無數的Java平台特性,包括JDK 5.0語言增強版和獲獎的Java Collections Framework。

下載下傳位址: http://pan.baidu.com/s/1skyjs41

[圖書目錄]

譯者序

前言

緻謝

第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條:慎用可變參數(varargs)

 第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方法