譯者序
序言
前言
第1章 緒論
第2章 創(chuàng)建及銷毀對象
2.1 考慮用靜態(tài)工廠方法代替構造函數(shù)
2.2 使用私有構造函數(shù)強化singleton屬性
2.3 用私有構造函數(shù)強化不可實例化能力
2.4 避免創(chuàng)建重復對象
2.5 消除對過期對象的引用
2.6 避免使用終結程序
第3章 對象的通用方法
3.1 重載equals時要遵守通用約定
3.2 重載equals時永遠要重載hashCode
3.3 永遠要重載toString
3.4 謹慎地重載clone
3.5 實現(xiàn)Comparable的問題
第4章 類和接口
4.1 最小化類和成員的可訪問能力
4.2 傾向于非可變性
4.3 組合優(yōu)于繼承
4.4 設計和文檔化繼承
4.5 接口優(yōu)于抽象類
4.6 接口只能用來定義類型
4.7 靜態(tài)成員優(yōu)于非靜態(tài)的
第5章 C語言結構的替代
5.1 用類替代結構
5.2 用類層次代替聯(lián)合
5.3 用類代替enum結構
5.4 用類和接口代替函數(shù)指針
第6章 方法
6.1 檢查參數(shù)的有效性
6.2 使用保護性拷貝
6.3 認真設計方法簽名
6.4 謹慎地使用過載
6.5 返回0長度的數(shù)組而不是null
6.6 為所有的導出API元素寫文檔注釋
第7章 通用編程
7.1 最小化局部變量作用域
7.2 了解和使用庫
7.3 需要確切答案時,不要使用float或double類型
7.4 盡量避免使用串
7.5 了解串并置的性能
7.6 通過接口訪問對象
7.7 接口優(yōu)于反射
7.8 謹慎地使用固有方法
7.9 謹慎地做優(yōu)化
7.10 遵循普遍接受的命名慣例
第8章 異常
8.1 僅在不正常的情況下使用異常
8.2 對可恢復的情況使用已檢查異常對程序錯使用運行時異常
8.3 避免已檢查異常的不必要使用
8.4 使用標準的異常用法
8.5 引發(fā)的異常要與抽象對應
8.6 給方法引發(fā)的異常做文檔
8.7 在細節(jié)消息里包括失敗捕獲信息
8.8 使失敗原子化
8.9 不要忽略異常
第9章 線程
9.1 同步訪問共享的可變數(shù)據(jù)
9.2 不要過度使用同步
9.3 不要在循環(huán)外部調用wait
9.4 不要依賴線程調度器
9.5 文檔化線程安全
9.6 避免使用線程組
第10章 串行化
10.1 謹慎實現(xiàn)Serializable
10.2 使用自定義的串行化形式
10.3 保護性地編寫readObject方法
10.4 必要時提供readResolve方法
參考文獻