effective java 學習筆記 二

2021-04-16 22:05:27 字數 600 閱讀 9702

由於時間比較匆忙,水平有限,簡單寫了一下第二章的學習筆記。

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

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...