摘要:來源前條來源一書英文版已經(jīng)出版,這本書的第二版想必很多人都讀過,號稱四大名著之一,不過第二版年出版,到現(xiàn)在已經(jīng)將近年的時(shí)間,但隨著,,,甚至的發(fā)布,語言發(fā)生了深刻的變化。譯者在這里第一時(shí)間翻譯成中文版。供大家學(xué)習(xí)分享之用。
來源:sjsdfg/effective-java-3rd-chinese前 51 條來源:Effective Java, Third Edition
《Effective Java, Third Edition》一書英文版已經(jīng)出版,這本書的第二版想必很多人都讀過,號稱Java四大名著之一,不過第二版2009年出版,到現(xiàn)在已經(jīng)將近8年的時(shí)間,但隨著Java 6,7,8,甚至9的發(fā)布,Java語言發(fā)生了深刻的變化。
(譯者)在這里第一時(shí)間翻譯成中文版。供大家學(xué)習(xí)分享之用。
本書的源代碼見 jbloch/effective-java-3e-source-code。
目錄01. 考慮使用靜態(tài)工廠方法替代構(gòu)造方法.md
02. 當(dāng)構(gòu)造方法參數(shù)過多時(shí)使用builder模式.md
03. 使用私有構(gòu)造方法或枚類實(shí)現(xiàn)Singleton屬性.md
04. 使用私有構(gòu)造方法執(zhí)行非實(shí)例化.md
05. 使用依賴注入取代硬連接資源(hardwiring resources).md.md)
06. 避免創(chuàng)建不必要的對象.md
07. 消除過期的對象引用.md
08. 避免使用Finalizer和Cleaner機(jī)制.md
09. 使用try-with-resources語句替代try-finally語句.md
10. 重寫equals方法時(shí)遵守通用約定.md
11. 重寫equals方法時(shí)同時(shí)也要重寫hashcode方法.md
12. 始終重寫 toString 方法.md
13. 謹(jǐn)慎地重寫 clone 方法.md
14. 考慮實(shí)現(xiàn)Comparable接口.md
15. 使類和成員的可訪問性最小化.md
16. 在公共類中使用訪問方法而不是公共屬性.md
17. 最小化可變性.md
18. 組合優(yōu)于繼承.md
19. 如使用繼承則設(shè)計(jì),應(yīng)當(dāng)文檔說明,否則不該使用.md
20. 接口優(yōu)于抽象類.md
21. 為后代設(shè)計(jì)接口.md
22. 接口僅用來定義類型.md
23. 優(yōu)先使用類層次而不是標(biāo)簽類.md
24. 優(yōu)先考慮靜態(tài)成員類.md
25. 將源文件限制為單個(gè)頂級類.md
26. 不要使用原始類型.md
27. 消除非檢查警告.md
28. 列表優(yōu)于數(shù)組.md
29. 優(yōu)先考慮泛型.md
30. 優(yōu)先使用泛型方法.md
31. 使用限定通配符來增加API的靈活性.md
32. 合理地結(jié)合泛型和可變參數(shù).md
33. 優(yōu)先考慮類型安全的異構(gòu)容器.md
34. 使用枚舉類型替代整型常量.md
35. 使用實(shí)例屬性替代序數(shù).md
36. 使用EnumSet替代位屬性.md
37. 使用EnumMap替代序數(shù)索引.md
38. 使用接口模擬可擴(kuò)展的枚舉.md
39. 注解優(yōu)于命名模式.md
40. 始終使用Override注解.md
41. 使用標(biāo)記接口定義類型.md
42. lambda表達(dá)式優(yōu)于匿名類.md
43. 方法引用優(yōu)于lambda表達(dá)式.md
44. 優(yōu)先使用標(biāo)準(zhǔn)的函數(shù)式接口.md
45. 明智審慎地使用Stream.md
46. 優(yōu)先考慮流中無副作用的函數(shù).md
47. 優(yōu)先使用Collection而不是Stream來作為方法的返回類型.md
48. 謹(jǐn)慎使用流并行.md
49. 檢查參數(shù)有效性.md
50. 必要時(shí)進(jìn)行防御性拷貝.md
51. 仔細(xì)設(shè)計(jì)方法簽名.md
52. 明智審慎地使用重載.md
53. 明智審慎地使用可變參數(shù).md
54. 返回空的數(shù)組或集合,不要返回 null.md
55. 明智審慎地返回 Optional.md
56. 為所有已公開的 API 元素編寫文檔注釋.md
57. 最小化局部變量的作用域.md
58. for-each 循環(huán)優(yōu)于傳統(tǒng) for 循環(huán).md
59. 了解并使用庫.md
60. 若需要精確答案就應(yīng)避免使用 float 和 double 類型.md
61. 基本數(shù)據(jù)類型優(yōu)于包裝類.md
62. 當(dāng)使用其他類型更合適時(shí)應(yīng)避免使用字符串.md
63. 當(dāng)心字符串連接引起的性能問題.md
64. 通過接口引用對象.md
65. 接口優(yōu)于反射.md
66. 明智審慎地本地方法.md
67. 明智審慎地進(jìn)行優(yōu)化.md
68. 遵守被廣泛認(rèn)可的命名約定.md
69. 只針對異常的情況下才使用異常.md
70. 對可恢復(fù)的情況使用受檢異常,對編程錯(cuò)誤使用運(yùn)行時(shí)異常.md
71. 避免不必要的使用受檢異常.md
72. 優(yōu)先使用標(biāo)準(zhǔn)的異常.md
73. 拋出與抽象對應(yīng)的異常.md
74. 每個(gè)方法拋出的異常都需要創(chuàng)建文檔.md
75. 在細(xì)節(jié)消息中包含失敗一捕獲信息.md
76. 保持失敗原子性.md
77. 不要忽略異常.md
78. 同步訪問共享的可變數(shù)據(jù).md
79. 避免過度同步.md
80. executor 、task 和 stream 優(yōu)先于線程.md
81. 相比 wait 和 notify 優(yōu)先使用并發(fā)工具.md
82. 文檔應(yīng)包含線程安全屬性.md
83. 明智審慎的使用延遲初始化.md
84. 不要依賴線程調(diào)度器.md
85. 優(yōu)先選擇 Java 序列化的替代方案.md
86. 非常謹(jǐn)慎地實(shí)現(xiàn) Serializable.md
87. 考慮使用自定義的序列化形式.md
88. 保護(hù)性的編寫 readObject 方法.md
89. 對于實(shí)例控制,枚舉類型優(yōu)于 readResolve.md
90. 考慮用序列化代理代替序列化實(shí)例.md
PDF 下載
相關(guān)資源On Java 8 中文版
贊助譯者文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/74076.html