Java equals和 的區別

2021-07-03 22:39:42 字數 996 閱讀 6442

好多人搞不清equals和==的區別,今天我來**一下,如有誤請批評指正。

我們常常簡單理解為==運算子用來比較兩個基本資料型別的數值是否相同,而equals()方法用來比較兩個物件是否相同。

這樣的理解也可以,但我們還是要看看更深層次的含義,那樣會更加清晰

1,.對於基本資料型別,byte,short,char,int,long,float,double,boolean   他們之間的比較,應用雙等號(==),比較的是他們的值。

int  x=1;

int y=1;

system.out.println(x==y);//true

2,主要區別是:==常用於比較原生型別,而equals()方法用於檢查物件的相等性。另乙個不同的點是:如果==和equals()用於比較物件,當兩個引用位址相同,==返回true。而equals()可以返回true或者false主要取決於重寫實現。

string a = new string("hello world");  

string b = new string("hello world");  

system.out.println(a==b);  

//返回為false,比較兩個物件位址

這是因為==比較的是兩個引用時是不是指向同乙個記憶體位址,而equeals比較的是字面值。上面的new就產生了兩個不同的物件,那麼其記憶體位址肯定也就不同了

string a = new string("hello world");  

string b = new string("hello world");  

system.out.println(a.equals(b));   //返回為true  ,比較物件具體內容

總結:1,使用==比較原生型別如:boolean、int、char等等,使用equals()比較物件。

2,==返回true如果兩個引用指向相同的物件,equals()的返回結果依賴於具體業務實現

3,字串的對比使用equals()代替==操作符

JAVA equals和「 」的區別

首先要明白什麼基本型別和引用型別 基本型別 比較的就是值是否相同。和 equals 被重寫之前 都是屬於引用型別。但是equals使用時比較靈活,大多數被重寫使用。實際上jdk中,string math等封裝類都對equals 方法進行了重寫。如果建立物件定義資料型別 比如 string a new...

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