Java程式設計的78條黃金法則

創建和銷毀對象
1.考慮用靜態工廠方法(返回類的實例的靜態方法)代替構造器
2.遇到多個構造器參數時要考慮用構造器
3.用私有構造器或者枚舉類型強化Singleton屬性
4.通過私有構造器強化不可產生實體的能力
5.避免創建不必要的物件
6.消除過期的物件引用
7.避免使用終結方法

對於所有物件都通用的方法
8.覆蓋equals時請遵守通用約定
9.覆蓋equals時總要覆蓋hashCode
10.始終要覆蓋toString
11.謹慎地覆蓋clone
12.考慮實現Comparable介面

類和介面
13.使類和成員的可訪問性最小化
14.在公有類中使用存取方法而非公有域
15.使可變性最小化
16.複合優於繼承
17.要麼為繼承為設計,並提供文檔說明,要麼就禁止繼承
18.介面優於抽象類別
19.介面只用于定義類型
20.類層次優於標籤類
21.用函數物件表示策略
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.謹慎的實現Seriallizable介面
75.考慮使用自訂的序列化形式
76.保護性的編寫readObject方法
77.對於實例控制,枚舉類型優先於readResolve
78.考慮用序列化代理代替序列化實例

(此篇文章為網路轉載,如有冒犯,請來信告知,當即刻移除!)