java中的equals方法


他其實就是用來比較字符串的內容的,因為基本數據類型可以直接用=來比較,但是引用類型不可以,所以就有了這個equals方法,他可以用來比較字符串里面內容一致不一致,如果是“內容”equals(變量名的話)記住那個常量一定要寫在括號里面,否則會有一定的異常,他是字符串比較用的,因為如果引用類型也用=號來比較他比較的就不是內容了,他比較的是地址值,如果是對象用的equals方法,那么就是對象與對象之間比較的哈希值

前言

Java的基類Object提供了一些方法,其中equals()方法用於判斷兩個對象是否相等,hashCode()方法用於計算對象的哈希碼。equals()和hashCode()都不是final方法,都可以被重寫(overwrite)。

本文介紹了2種方法在使用和重寫時,一些需要注意的問題。

如果覺得文章對你有幫助,歡迎點贊或轉發。文章有疏漏之處,歡迎批評指正。

一、equal()方法

 Object類中equals()方法實現如下:

public boolean equals(Object obj) {    return (this == obj); }

通過該實現可以看出,Object類的實現采用了區分度最高的算法,即只要兩個對象不是同一個對象,那么equals()一定返回false。

雖然我們在定義類時,可以重寫equals()方法,但是有一些注意事項;JDK中說明了實現equals()方法應該遵守的約定:

(1)自反性:x.equals(x)必須返回true。

(2)對稱性:x.equals(y)與y.equals(x)的返回值必須相等。

(3)傳遞性:x.equals(y)為true,y.equals(z)也為true,那么x.equals(z)必須為true。

(4)一致性:如果對象x和y在equals()中使用的信息都沒有改變,那么x.equals(y)值始終不變。

(5)非null:x不是null,y為null,則x.equals(y)必須為false。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM