Effective Java是一本出版很多年,也很多人推薦的Java書籍,值得初階Java開發者了解更多Java的功能,也可以讓有多年經驗的Java開發人員,更深入了解Java。這次參賽將會介紹Effective Java前面二十幾個Item,帶領大家更了解Java的設計。
為了避免在使用跟hash有關的功能(ex: HashMap、HashSet和Hashtable)時,因為equals相等但hashCode不一樣,會導致判斷物件...
昨天提到了覆寫equals和覆寫hashCode需要注意的事情,今天就來談談,覆寫hashCode可以遵照哪些規則覆寫。 沒有在equals用來判斷物件相不...
當一個物件需要被clone時,該物件的類別需要實作Cloneable ,但是Cloneable並沒有定義clone()這個method,光靠實作Cloneabl...
昨天提到使用繼承而來的clone,所衍生的一些問題。要解決昨天遇到的問題,最好的方法就是覆寫clone(),因為可以在clone()裡面去複製array或lis...
在實作類別的時候,最好覆寫toString ,如果不覆寫toString ,把物件印出來的時候,會是class name + @ + hash code的十六進...
不像前幾個章節提到的equals()、hashCode()和clone(),所有類別所繼承的Object已有實作那些method,Object並沒有實作comp...
最小化存取權限的優點 所謂最小化存取權限,其實就是隱藏不必要給其他使用者知道資訊,這麼做的好處有: 可以解耦和模組化系統:各類別或模組的規格訂完了之後,開發人...
所謂最小化可變性,就是把類別盡量設計成immutable,immutable類別是指,在類別實體化之後,類別裡面的資料不能再被更動修改,因此,相較於mutabl...
昨天說了如何設計immutable類別,以及物件狀態改變時該怎麼辦,今天會提出另外兩個方法,並說明immutable類別有什麼缺點,有什麼解法。 除了像昨天介紹...
使用繼承雖然可以重複使用程式碼,但是繼承會有一些缺點,像是: 父類別未來如果有變動,容易影響子類別的行為,範圍如果過大,會無法預測系統的行為。 繼承的時候,如...