第三章 對於全部對象都通用的方法性能
第8條:覆蓋equals時請遵照通用約定測試
不覆蓋equals方法的任一條件:code
類的每一個實例本質上都是惟一的。對象
不關心類的是否提供了「邏輯相等」的測試功能。blog
超類已經覆蓋了equals,從超類繼承過來的行爲對於子類也是合適的。排序
類是私有的或是包級私有的,能夠肯定它的equals方法永遠不會被調用。繼承
覆蓋equals所需遵照的條件:接口
覆蓋equals方法時總要覆蓋hashcode()hash
不要企圖讓equals方法過於智能class
不要將equals方法中聲明的Object對象替換爲其餘的類型
第9條 覆蓋equals方法時總要覆蓋hashCode
錯誤的hash Code的方法將會下降散列表的性能
不要試圖從散列碼計算中排除一個關鍵域來提升性能
第10條始終覆蓋toString
toString 方法應該返回對象中包含的全部值的關注的信息
第11條謹慎覆蓋clone
覆蓋clone問題不少,自行編寫一個靜態克隆方法會更好
第12條考慮實現Comparable接口
考慮到排序,需實現Comparable