Effective Java 筆記

Chapter 2 創建及銷毀對象

[筆記] Effective Java #1 用 static factory methods 代替 constructor
[筆記] Effective Java #2 遇到多個 constructor 參數時要考慮使用 builder
[筆記] Effective Java #3 用 private constructor 或者 enum 強化 singleton 屬性
[筆記] Effective Java #4 用 private constructor 來強化不可實例化
[筆記] Effective Java #5 優先考慮 dependency injection 來引用資源
[筆記] Effective Java #6 避免創建不必要的物件
[筆記] Effective Java #7 消除過期的物件引用
[筆記] Effective Java #9 try-with-resources 優先於 try-finally

Chapter 3 對於所有物件都通用的方法

[筆記] Effective Java #10 覆寫 equals 時請遵守通用約定(上)
[筆記] Effective Java #10 覆寫 equals 時請遵守通用約定(下)
[筆記] Effective Java #11 覆寫 equals 時總要覆寫 hashCode
[筆記] Effective Java #12 始終要覆寫 toString
[筆記] Effective Java #13 審慎的覆寫 clone
[筆記] Effective Java #14 考慮實作 Comparable 介面

Chapter 4 Class 和 Interface

[筆記] Effective Java #15 使類及其成員的可訪問性最小化
[筆記] Effective Java #16 要在 public 類使用訪問方法而非 public field
[筆記] Effective Java #17 使可變性最小化
[筆記] Effective Java #18 複合優先於繼承
[筆記] Effective Java #19 設計繼承一併提供文件,否則不要使用繼承
[筆記] Effective Java #20 介面優於抽象類
[筆記] Effective Java #21 為後代設計介面
[筆記] Effective Java #22 介面只用於定義類型
[筆記] Effective Java #23 類層次優於標籤類
[筆記] Effective Java #24 靜態成員類優於非靜態成員類
[筆記] Effective Java #25 source 應限制單一 top level class

Chapter 5 Generics (泛型)

[筆記] Effective Java #26 請不要使用原生類型
[筆記] Effective Java #27 消除 unchecked 警告
[筆記] Effective Java #28 List 優先於陣列
[筆記] Effective Java #29 優先考慮泛型
[筆記] Effective Java #30 優先考慮泛型方法
[筆記] Effective Java #31 利用 bounded wildcard 來提升 API 的靈活性
[筆記] Effective Java #32 謹慎地併用泛型與可變參數
[筆記] Effective Java #33 優先考慮類型安全的異構容器

Chapter 6 Enum 與 Annotation

[筆記] Effective Java #34 用 enum 代替 int 常量
[筆記] Effective Java #35 用實例域代替序數
[筆記] Effective Java #36 用 EnumSet 代替位域
[筆記] Effective Java #37 用 EnumMap 代替序數索引
[筆記] Effective Java #38 用接口模擬可擴展的 enum
[筆記] Effective Java #39 註解優先於命名模式
[筆記] Effective Java #40 堅持使用 override 註解

Chapter 7 Lambda 和 Stream

[筆記] Effective Java #42 Lambda 優先於匿名類
[筆記] Effective Java #43 方法引用優先於 Lambda
[筆記] Effective Java #44 堅持使用標準的函數介面
[筆記] Effective Java #45 謹慎使用 Stream
[筆記] Effective Java #46 優先選擇 Stream 中無副作用的函數
[筆記] Effective Java #47 Stream 要優先用 Collection 作為回傳類型
[筆記] Effective Java #48 謹慎使用 Stream 並行

Chapter 8 方法

[筆記] Effective Java #49 檢查參數的有效性
[筆記] Effective Java #50 必要時進行保護性拷貝
[筆記] Effective Java #51 謹慎設計方法簽名
[筆記] Effective Java #52 慎用重載
[筆記] Effective Java #53 慎用可變參數
[筆記] Effective Java #54 回傳零長度的陣列或集合,而不是 null
[筆記] Effective Java #55 謹慎回傳 optional
[筆記] Effective Java #56 為所有導出的 API 編寫文件注釋

Chapter 9 通用程式設計

[筆記] Effective Java #57 將區域變數的作用域最小化
[筆記] Effective Java #58 for-each 優先於傳統的 for
[筆記] Effective Java #59 了解和使用函式庫
[筆記] Effective Java #60 如果需要精確的答案,請避免使用 float 和 double
[筆記] Effective Java #61 基本類型優先於裝箱基本類型
[筆記] Effective Java #62 如果其他類型更適合,盡量避免用字串
[筆記] Effective Java #63 了解字串連接的效能
[筆記] Effective Java #64 透過介面來引用物件
[筆記] Effective Java #65 介面優先於反射機制
[筆記] Effective Java #66 謹慎地使用本地方法
[筆記] Effective Java #67 謹慎地進行最佳化
[筆記] Effective Java #68 遵守普遍接受的命名慣例

Chapter 10 異常

[筆記] Effective Java #69 只針對異常的情況下才使用異常
[筆記] Effective Java #70 對可復原的情況用受檢異常,對編程錯誤使用運行時異常
[筆記] Effective Java #71 避免不必要地使用受檢異常
[筆記] Effective Java #72 優先使用標準的異常
[筆記] Effective Java #73 拋出與抽象對應的異常
[筆記] Effective Java #74 每個方法拋出的所有異常都要建立文件
[筆記] Effective Java #75 在細節資訊中包含失敗 - 捕獲訊息
[筆記] Effective Java #76 努力使失敗保持原子性
[筆記] Effective Java #77 不要忽略異常

Chapter 11 併發

[筆記] Effective Java #78 同步存取共享的可變數據
[筆記] Effective Java #79 避免過度同步
[筆記] Effective Java #80 executor、task 和 stream 優先於執行緒
[筆記] Effective Java #81 並發工具優先於 wait 和 notify
[筆記] Effective Java #82 執行緒安全性的文件化
[筆記] Effective Java #83 慎用延遲初始化
[筆記] Effective Java #84 不要依賴執行緒調度器

Chapter 12 序列化

[筆記] Effective Java #85 其他方法優先於 Java 序列化
[筆記] Effective Java #86 謹慎地實作 Serializable 介面
[筆記] Effective Java #87 考慮使用自行定義的序列化方式
[筆記] Effective Java #88 保護性的編寫 readObject 方法
[筆記] Effective Java #89 對於實體控制,enum 類型優先於 readResolve

沒有留言:

張貼留言