創建和銷毀對象
第1條:考慮用靜態工廠方法代替構造函數
第2條:使用私有構造函數強化singletonc屬性
第3條:通過私有構造函數強化不可實例化c的能力
第4條:避免創建重復的對象
第5條:消除過期的對象引用
第6條:避免使用終結函數
對于所有對象都通用的方法
第7條:在改寫equals的時候請遵守通用c約定
第8條:改寫equals時總是要改寫hashCode
第9條:總是要改寫toString
第10條:謹慎地改寫clone
第11條:考慮實現Comparable接口
類和接口
第12條:使類和成員的可訪問能力最小化
第13條:支持非可變性
第14條:復合優先于繼承
第15條:要么專門為繼承而設計,1并給出c文檔說明,1要么禁止繼承
第16條:接口優于抽象類
第17條:接口只是被用于定義類型
第18條:優先考慮靜態成員類
C語言結構的替代
第19條:用類代替結構
第20條:用類層次來代替聯合
第21條:用類來代替enum結構
第22條:用類和接口來代替函數指針
方法
第23條:檢查參數的有效性
第24條:需要時使用保護性拷貝
第25條:謹慎設計方法的原型
第26條:謹慎地使用重載
第27條:返回零長度的數組而不是null
第28條:為所有導出的API元素編寫c文檔注釋
通用程序設計
第29條:將局部變量的作用域最小化
第30條:了解和使用庫
第31條:如果要求精確的答案,1請避免c使用float和double
第32條:如果其他類型更適合,1則盡量避免c使用字符串
第33條:了解字符串連接的性能
第34條:通過接口引用對象
第35條:接口優先于映像機制
第36條:謹慎地使用本地方法
第37條:謹慎地進行優化
第38條:遵守普遍接受的命名慣例
異常
第39條:只針對不正常的條件才使用異常
第40條:對于可恢復的條件使用被檢查的c異常,1對于程序錯誤使用運行時c異常
第41條:避免不必要地使用被檢查的異常
第42條:盡量使用標準的異常
第43條:拋出的異常要適合于相應的抽象
第44條:每個方法拋出的異常都要有文檔
第45條:在細節消息中包含失敗-捕獲信息
第46條:努力使失敗保持原子性
第47條:不要忽略異常
線程
第48條:對共享可變數據的同步訪問
第49條:避免過多的同步
第50條:永遠不要在循環的外面調用wait
第51條:不要依賴于線程調度器
第52條:線程安全性的文檔化
第53條:避免使用線程組
序列化
第54條:謹慎地實現Serializable
第55條:考慮使用自定義的序列化形式
第56條:保護性地編寫readObject方法
第57條:必要時提供一個readResolve方法