由於時間比較匆忙,水平有限,簡單寫了一下第二章的學習筆記。
對於所有物件都通用的方法。
7.在改寫equals的時候請遵守通用的約定。
當乙個類有自己的特有的「邏輯相等」概念,而超類沒有改寫equals 方法。
滿足一下的規定:
自反性,對稱性,傳遞性,一致性。
一些告誡: 重寫equals 一般要重寫hascode()方法 不要讓equals過於聰明,只是簡單的比較值就可以了。不要依賴與乙個不可靠的資源。
不要將e q u a l s宣告中的o b j e c t物件替換為其他的型別。程式設計師編寫出下面這樣的
e q u a l s方法並不鮮見,這會使程式設計師數個小時都搞不清為什麼它不能正常工作。
8.改寫equals時總要改寫hashcode。規定:如果兩個物件的equals(object)相等,那麼hashcode也應該相等。如不相等,則不要求產生不同的結果。
9.總要改寫tostring 方法。雖然有預設的,但是不夠豐富,沒多大意義。改寫後使其清晰易懂。
9.謹慎的改寫clone。
主要注意深拷貝和淺拷貝的區別。
11.考慮實現comparable介面。主要在與比較的時候用的比較多.
Effective Java 學習筆記 6
及時消除不使用的物件的引用,理論上,帶有記憶體管理的語言是不存在記憶體洩漏的,但是如果對物件的操作不當,也是可能會造成記憶體洩漏.如有乙個stack,其pop函式如下.public object pop if element.length 0 return null return element s...
Effective Java 學習筆記(5)
盡量復用物件,而不是建立新的物件,特別是當乙個物件是immutable 不可改變 的時候。如string物件,string s new string string 千萬不要這樣做,因為這裡實際上建立了兩個物件。要避免出現這樣的情況,1是可以用靜態工廠函式,來解決,如類庫中的boolean.value...
Effective Java 學習筆記 6
及時消除不使用的物件的引用,理論上,帶有記憶體管理的語言是不存在記憶體洩漏的,但是如果對物件的操作不當,也是可能會造成記憶體洩漏.如有乙個stack,其pop函式如下.public object pop if element.length 0 return null return element s...