iT邦幫忙

鐵人檔案

2024 iThome 鐵人賽
回列表
Software Development

深入淺出Java 30天 系列

Effective Java是一本出版很多年,也很多人推薦的Java書籍,值得初階Java開發者了解更多Java的功能,也可以讓有多年經驗的Java開發人員,更深入了解Java。這次參賽將會介紹Effective Java前面二十幾個Item,帶領大家更了解Java的設計。

鐵人鍊成 | 共 30 篇文章 | 12 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day 11: 覆寫equals時,也要覆寫hashCode(上)

為了避免在使用跟hash有關的功能(ex: HashMap、HashSet和Hashtable)時,因為equals相等但hashCode不一樣,會導致判斷物件...

2024-08-11 ‧ 由 Judy Huang 分享
DAY 12

Day 12: 覆寫equals時,也要覆寫hashCode(下)

昨天提到了覆寫equals和覆寫hashCode需要注意的事情,今天就來談談,覆寫hashCode可以遵照哪些規則覆寫。 沒有在equals用來判斷物件相不...

2024-08-12 ‧ 由 Judy Huang 分享
DAY 13

Day 13: 明智地覆寫clone(上)

當一個物件需要被clone時,該物件的類別需要實作Cloneable ,但是Cloneable並沒有定義clone()這個method,光靠實作Cloneabl...

2024-08-13 ‧ 由 Judy Huang 分享
DAY 14

Day 14: 明智地覆寫clone(下)

昨天提到使用繼承而來的clone,所衍生的一些問題。要解決昨天遇到的問題,最好的方法就是覆寫clone(),因為可以在clone()裡面去複製array或lis...

2024-08-14 ‧ 由 Judy Huang 分享
DAY 15

Day 15: 總是覆寫toString

在實作類別的時候,最好覆寫toString ,如果不覆寫toString ,把物件印出來的時候,會是class name + @ + hash code的十六進...

2024-08-15 ‧ 由 Judy Huang 分享
DAY 16

Day 16: 考慮實作Comparable

不像前幾個章節提到的equals()、hashCode()和clone(),所有類別所繼承的Object已有實作那些method,Object並沒有實作comp...

2024-08-16 ‧ 由 Judy Huang 分享
DAY 17

Day 17: 最小化類別、方法和欄位的存取權限

最小化存取權限的優點 所謂最小化存取權限,其實就是隱藏不必要給其他使用者知道資訊,這麼做的好處有: 可以解耦和模組化系統:各類別或模組的規格訂完了之後,開發人...

2024-08-17 ‧ 由 Judy Huang 分享
DAY 18

Day 18: 最小化可變性(上)

所謂最小化可變性,就是把類別盡量設計成immutable,immutable類別是指,在類別實體化之後,類別裡面的資料不能再被更動修改,因此,相較於mutabl...

2024-08-18 ‧ 由 Judy Huang 分享
DAY 19

Day 19: 最小化可變性(下)

昨天說了如何設計immutable類別,以及物件狀態改變時該怎麼辦,今天會提出另外兩個方法,並說明immutable類別有什麼缺點,有什麼解法。 除了像昨天介紹...

2024-08-19 ‧ 由 Judy Huang 分享
DAY 20

Day 20: 最好使用composition而不是繼承(上)

使用繼承雖然可以重複使用程式碼,但是繼承會有一些缺點,像是: 父類別未來如果有變動,容易影響子類別的行為,範圍如果過大,會無法預測系統的行為。 繼承的時候,如...

2024-08-20 ‧ 由 Judy Huang 分享