Effective Java中文版(第2版)

Effective Java中文版(第2版)

《Effective Java中文版(第2版)》 是機械工業出版社出版的圖書, ISBN是9787111255833

內容簡介

本書介紹了在java編程中78條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。通過對java平台設計專家所使用的技術的全面描述,揭示了應該做什麼,不應該做什麼才能產生清晰、健壯和高效的代碼。

本書中的每條規則都以簡短、獨立的小文章形式出現,並通過例子代碼加以進一步說明。本書內容全面,結構清晰,講解詳細。可作為技術人員的參考用書。

作者簡介

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版條目對照

中英文術語對照

參考文獻

相關詞條

相關搜尋

熱門詞條

聯絡我們