圖書簡介
《Effective Java 中文版》是Joshua Bloch所著的一本書籍,該書每一章都包含幾個“條目”,以簡潔的形式呈現,自成獨立的短文,它們提出了具體的建議,對於Java平台精妙之處的獨到見解,以及優秀的代碼範例。每個條目的綜合描述和解釋都闡明了應該怎么做,不應該怎么做,以及為什麼。
基本介紹
概括
中文名: Effective Java 中文版
原名: Effective Java Programming Language Guide
別名: Effective Java
作者: Joshua Bloch
圖書分類: 軟體
資源格式: PDF
版本: 第一版
出版社: 機械工業出版社
發行時間: 2003年01月
簡介:
內容介紹
你是否正在尋找一本能夠更加深入地了解Java程式語言的書,以便編寫出更清晰、更正確.更健壯且更易於重用的代碼。不用找了!本書為我們帶來了共78條程式設計師必備的經驗法則,針對你每天都會遇到的編程問題提出了最有效、最實用的解決方案。
這本經典Jolt獲獎作品實屬眾望所歸。作者對新版進行了徹底的更新,涵蓋了自第1版之後所引入的Java SE5和Java SE 6的特性,同時開發了新的設計模式和語言習慣用法,介紹了如何充分利用從泛型到枚舉、從註解到自動裝箱的各種特性。
全新的泛型、枚舉、註解、自動裝箱、for-each循環、可變參數、並發機制,等等。
經典主題的全新技術和最佳實踐,包括對象、類、類庫.方法和序列化。
如何避免Java程式語言中常被誤解的細微之處:陷阱和缺陷。
重點關注Java語言本身和最基本的類庫及其擴展:java.lang、java.util、java.util.concurrent和java.i0。
目錄
第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方法
第77條:對於實例控制,枚舉類型優先於readResolve
第78條:考慮用序列化代理代替序列化實例