文章詳情頁
Effective java學習筆記7:改寫equals的時候遵守約定
瀏覽:12日期:2024-06-19 08:02:04
內容: 在java里面object equals()的概念是兩個引用指向的是同一個對象,即兩者指向同一個對象,才equals()。但是也有特例,比如說一些原始類型,integer,string等屬于值相等。就是說,值相等,也就equals()了。實際上,他們都改寫了object的equals()方法。但是類型安全的值類不需要改寫equals()。 還有,當我們當前的類有特定的相等的定義的時候,而且我們的超類并沒有改寫equals()方法,就需要改寫equals()方法了。改寫的規(guī)范-object必須滿足:1. 自反2. 對稱3. 傳遞4. 一致5. X非空,x.equals(null)返回false為了實現高質量的equals()改寫,effective java提醒我們要注意一下幾點:1. 使用==操作符檢查是否指向同一個對象,這是一個性能優(yōu)化的手段。2. 使用instanceof來檢查是否為某個類,同樣也是性能優(yōu)化的手段。3. 把實參轉換到正確的類型,上面一步保證了這一步不會有錯誤。4. 檢查類里的每一個關鍵域是否都相等。還有要注意的就是,改寫equals()方法的同時,都要改寫hashcode方法。(下一篇里會提到為什么要這樣) Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標簽:
Java
相關文章:
1. python學習筆記之多進程2. PHP PDO 學習筆記3. 《javascript設計模式》學習筆記二:Javascript面向對象程序設計繼承用法分析4. 《javascript設計模式》學習筆記五:Javascript面向對象程序設計工廠模式實例分析5. windows下安裝PHP性能分析工具 xhprof 筆記6. JavaScript閉包原理與用法學習筆記7. 《CSS3實戰(zhàn)》筆記--漸變設計(二)8. asp知識整理筆記1(問答模式)9. 《javascript設計模式》學習筆記四:Javascript面向對象程序設計鏈式調用實例分析10. python 匿名函數與三元運算學習筆記
排行榜