來源:sjsdfg/effective-java-3rd-chinese
前 51 條來源:Effective Java, Third Edition
《Effective Java, Third Edition》一書英文版已經出版,這本書的第二版想必很多人都讀過,號稱Java四大名著之一,不過第二版2009年出版,到現在已經將近8年的時間,但隨著Java 6,7,8,甚至9的釋出,Java語言發生了深刻的變化。
(譯者)在這裡第一時間翻譯成中文版。供大家學習分享之用。
本書的原始碼見 jbloch/effective-java-3e-source-code。
目錄
- 01. 考慮使用靜態工廠方法替代構造方法.md
- 02. 當構造方法引數過多時使用builder模式.md
- 03. 使用私有構造方法或枚類實現Singleton屬性.md
- 04. 使用私有構造方法執行非例項化.md
- 05. 使用依賴注入取代硬連線資源(hardwiring resources).md
- 06. 避免建立不必要的物件.md
- 07. 消除過期的物件引用.md
- 08. 避免使用Finalizer和Cleaner機制.md
- 09. 使用try-with-resources語句替代try-finally語句.md
- 10. 重寫equals方法時遵守通用約定.md
- 11. 重寫equals方法時同時也要重寫hashcode方法.md
- 12. 始終重寫 toString 方法.md
- 13. 謹慎地重寫 clone 方法.md
- 14. 考慮實現Comparable介面.md
- 15. 使類和成員的可訪問性最小化.md
- 16. 在公共類中使用訪問方法而不是公共屬性.md
- 17. 最小化可變性.md
- 18. 組合優於繼承.md
- 19. 如使用繼承則設計,應當文件說明,否則不該使用.md
- 20. 介面優於抽象類.md
- 21. 為後代設計介面.md
- 22. 介面僅用來定義型別.md
- 23. 優先使用類層次而不是標籤類.md
- 24. 優先考慮靜態成員類.md
- 25. 將原始檔限制為單個頂級類.md
- 26. 不要使用原始型別.md
- 27. 消除非檢查警告.md
- 28. 列表優於陣列.md
- 29. 優先考慮泛型.md
- 30. 優先使用泛型方法.md
- 31. 使用限定萬用字元來增加API的靈活性.md
- 32. 合理地結合泛型和可變引數.md
- 33. 優先考慮型別安全的異構容器.md
- 34. 使用列舉型別替代整型常量.md
- 35. 使用例項屬性替代序數.md
- 36. 使用EnumSet替代位屬性.md
- 37. 使用EnumMap替代序數索引.md
- 38. 使用介面模擬可擴充套件的列舉.md
- 39. 註解優於命名模式.md
- 40. 始終使用Override註解.md
- 41. 使用標記介面定義型別.md
- 42. lambda表示式優於匿名類.md
- 43. 方法引用優於lambda表示式.md
- 44. 優先使用標準的函式式介面.md
- 45. 明智審慎地使用Stream.md
- 46. 優先考慮流中無副作用的函式.md
- 47. 優先使用Collection而不是Stream來作為方法的返回型別.md
- 48. 謹慎使用流並行.md
- 49. 檢查引數有效性.md
- 50. 必要時進行防禦性拷貝.md
- 51. 仔細設計方法簽名.md
- 52. 明智審慎地使用過載.md
- 53. 明智審慎地使用可變引數.md
- 54. 返回空的陣列或集合,不要返回 null.md
- 55. 明智審慎地返回 Optional.md
- 56. 為所有已公開的 API 元素編寫文件註釋.md
- 57. 最小化區域性變數的作用域.md
- 58. for-each 迴圈優於傳統 for 迴圈.md
- 59. 瞭解並使用庫.md
- 60. 若需要精確答案就應避免使用 float 和 double 型別.md
- 61. 基本資料型別優於包裝類.md
- 62. 當使用其他型別更合適時應避免使用字串.md
- 63. 當心字串連線引起的效能問題.md
- 64. 通過介面引用物件.md
- 65. 介面優於反射.md
- 66. 明智審慎地本地方法.md
- 67. 明智審慎地進行優化.md
- 68. 遵守被廣泛認可的命名約定.md
- 69. 只針對異常的情況下才使用異常.md
- 70. 對可恢復的情況使用受檢異常,對程式設計錯誤使用執行時異常.md
- 71. 避免不必要的使用受檢異常.md
- 72. 優先使用標準的異常.md
- 73. 丟擲與抽象對應的異常.md
- 74. 每個方法丟擲的異常都需要建立文件.md
- 75. 在細節訊息中包含失敗一捕獲資訊.md
- 76. 保持失敗原子性.md
- 77. 不要忽略異常.md
- 78. 同步訪問共享的可變資料.md
- 79. 避免過度同步.md
- 80. executor 、task 和 stream 優先於執行緒.md
- 81. 相比 wait 和 notify 優先使用併發工具.md
- 82. 文件應包含執行緒安全屬性.md
- 83. 明智審慎的使用延遲初始化.md
- 84. 不要依賴執行緒排程器.md
- 85. 優先選擇 Java 序列化的替代方案.md
- 86. 非常謹慎地實現 Serializable.md
- 87. 考慮使用自定義的序列化形式.md
- 88. 保護性的編寫 readObject 方法.md
- 89. 對於例項控制,列舉型別優於 readResolve.md
- 90. 考慮用序列化代理代替序列化例項.md
- PDF 下載