Effective Java讀書筆記(目錄)

衣舞晨風發表於2017-05-08

一、建立和銷燬物件

第1條考慮用靜態工廠方法代替構造器
第2條遇到多個構造引數時要考慮用構建器Builder模式
第3條用私有構造器或者列舉型別強化Singleton屬性
第4條通過私有構造器強化不可例項化的能力
第5條避免建立不必要的物件
第6條消除過期的物件引用
第7條避免使用終結方法

二、巢狀類

第22條巢狀類

三、泛型

第23條請不要在新程式碼中使用原生態型別
第24條消除非受檢警告
第25條列表優先於陣列
第26條優先考慮泛型需要重新讀
第27條優先考慮泛型方法需要重新讀
第28條利用有限制萬用字元來提升API的靈活性需要重新讀
第29條優先考慮型別安全的異構容器需要重新讀

四、列舉和註解

第30條用enum代替int常量
第31條用例項域代替序數
第32條用EnumSet代替位域
第33條用EnumMap代替序數索引
第34條用介面模擬可以伸縮的列舉
第35條註解優先於命名模式
第36條堅持使用Override註解
第37條用標記介面實現型別

五、方法

第38條檢查引數的有效性
第39條必要時進行保護性拷貝
第40條謹慎設計方法簽名
第41條慎用過載
第42條慎用可變引數
第43條返回零長度的陣列或者集合而不是null
第44條為所有匯出的API元素編寫文件註釋

六、通用程式設計

第45條將區域性變數的作用域最小化
第46條for-each迴圈優先於傳統的for迴圈
第47條瞭解和使用標準類庫
第48條如果需要精確的答案請避免使用float和double
第49條基本型別優先於裝箱基本型別
第50條如果其他型別更適合則儘量避免使用字串
第51條當心字串連線的效能
第52條通過介面引用物件
第53條介面優先於反射機制
第54條謹慎地使用本地方法
第55條謹慎地進行優化
第56條遵守普通接受的命名慣例

七、異常

第57條只針對異常的情況才使用異常
第58條對可恢復的情況使用受檢異常對程式設計錯誤使用運用時異常
第59條避免不必要地使用受檢異常
第60條優先使用標準異常
第61條丟擲與抽象物件相對應的異常
第62條每個方法丟擲的異常都要有文件描述
第63條異常資訊中要包含足夠詳細的異常細節訊息
第64條努力使失敗保持原子性
第65條不要忽略異常

八、併發

第66條同步訪問共享的可變資料
第67條避免過度同步
第68條executor和task優先於執行緒
第69條併發工具優先於wait和notify
第70條執行緒安全性的文件化
第71條慎用延遲初始化
第72條不要依賴於執行緒排程器
第73條避免使用執行緒組

九、序列化

第74條謹慎地實現Serializable介面
第75條考慮使用自定義的序列化形式
第76條保護性地編寫readObject方法
第77條對於例項控制列舉型別優先於readResolve
第78條考慮用序列化代理代替序列化例項

作者:jiankunking 出處:http://blog.csdn.net/jiankunking

相關文章