JAVA equals和「 」的區別

2021-09-25 06:14:33 字數 825 閱讀 6660

首先要明白什麼基本型別和引用型別

基本型別:比較的就是值是否相同。

「 ==」 和 equals(被重寫之前)都是屬於引用型別。

但是equals使用時比較靈活,大多數被重寫使用。

實際上jdk中,string、math等封裝類都對equals()方法進行了重寫。

如果建立物件定義資料型別 比如:string a =new string( "a,b"); 

string b = new string("a,b");

建立了物件a和b存在棧中,資料存在了堆中,直接 「==「或equals對比的話比較的是位址值。

如果確定資料型別直接定義 比如:string a = "a.b";

sting b = "a,b";

這種情況直接定義把資料存在了」變數池「中,所以直接用 」==「或equals對比的話比的是實際值。

下面是一段**:

package cn.equals;

public class equals

}

結果顯示:

第四個結果為ture是因為string類中已經對equals進行了重寫,以下是我在api中檢視的。

當你用自己寫的類建立物件想要進行對比時,也要把equals方法進行重寫後使用。

Java equals和 的區別

好多人搞不清equals和 的區別,今天我來 一下,如有誤請批評指正。我們常常簡單理解為 運算子用來比較兩個基本資料型別的數值是否相同,而equals 方法用來比較兩個物件是否相同。這樣的理解也可以,但我們還是要看看更深層次的含義,那樣會更加清晰 1,對於基本資料型別,byte,short,char...

Java equals和hashCode的理解

我們一般使用equals都是為了比較物件的內容,而object裡面的equals方法卻是比較物件的引用,如下 public boolean equals object obj 所以當我們想要比較的是物件的內容時,需要重寫equals方法,假設user類中有string name int age 兩個...

java equals方法的覆蓋

public boolean equals object obj object中的這個方法比較的是位址,因此我們應當在自己的類中按自己的要求覆蓋這個方法 步驟 測試形參是否為null 測試型別是否匹配 將obj強轉為自己的類所屬的型別。最後,比較所有字段。使用 比較基本資料型別,使用equals方法...