Java程式設計法則

2021-08-30 09:41:35 字數 2024 閱讀 6230

這個是在網上看到的,是提高**質量應該參照的準則,就**過來,以備隨時查閱。

一、建立和銷毀物件

1.考慮用靜態工廠方法(返回類的例項的靜態方法)代替構造器

2.遇到多個構造器引數時要考慮用構造器

3.用私有構造器或者列舉型別強化singleton屬性

4.通過私有構造器強化不可例項化的能力

5.避免建立不必要的物件

6.消除過期的物件引用

7.避免使用終結(final)方法

二、對於所有物件都通用的方法

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.考慮用序列化**代替序列化例項

溫伯格程式設計法則

理解專業程式設計師 作者溫伯格。看到其中乙個段很有同感,尤其是2 3 6條 標準不夠標準。總會剩下乙個bug的,你找到了這個剩下的,那還會有另乙個。任何可能發生的事都將會發生。要是有人點出了 中的錯誤就在某處,那麼就在該點處之外的其他地方去找這個錯誤 很可能錯誤就在該人指出錯誤的別處。花10塊錢預防...

軟體程式設計21法則

英文出處 21 laws of computer programming 任何乙個有經驗的程式設計師都知道,軟體開發遵循著一些不成文的法則。然而,如果你不遵循這些法則也並不意味著會受到懲罰 相反,有時你還會獲得意外的好處。下面的就是軟體程式設計中的21條法則 任何程式一旦部署即顯陳舊。修改需求規範來...

程式設計珠璣 何為72法則

所謂的 72法則 就是以1 的複利來計息,經過72年以後,你的本金就會變成原來的一倍。這個公式好用的地方在於它能以一推十,例如 利用5 年報酬率的投資工具,經過14.4年 72 5 本金就變成一倍 利用12 的投資工具,則要6年左右 72 12 才能讓1塊錢變成2塊錢。因此,今天如果你手中有100萬...