equals和 的區別,看了就會!

2021-10-24 19:32:02 字數 912 閱讀 9831

int a = 1;

int b = 1;

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

person p1 = new person("a",1);

person p2 = new person("a",1);

system.out.println(p1==p2); //false

基本型別:boolean、byte、char、short、int、float、long、double、

引用型別:除基本型別外都是、

首先你需要知道 equals() 是object類的乙個方法,因為object是所有類的父類,所以所有類都繼承了 equals() 這個方法。

//object類的原始碼

public boolean equals(object obj)

由原始碼可知equals()方法內部其實還是用的==比較,所以預設情況(未重寫equals)下還是比較記憶體位址是否相等。

但重寫了equals()方法的類則比較的是值是否相同,例如:string,integer等就重寫了equals()方法

//string類重寫equals的原始碼

public boolean equals(object anobject)

if (anobject instanceof string)

return true;

} }return false;

}

所以,equals()比較就看一點,有沒有重寫equals,有比較的是值是否相等,沒有比較的則是記憶體位址是否相等。

Equals 和 的區別

對於值型別,如果物件的值相等,則相等運算子 返回 true,否則返回 false。對於string 以外的引用型別,如果兩個物件引用同乙個物件,則 返回 true。對於 string 型別,比較字串的值。操作比較的是兩個變數的值是否相等。equals 方法比較的是兩個物件的內容是否一致 equals...

equals 和 的區別

equals 方法 是string類從它的超類object中繼承的 被用來檢測兩個物件是否相等,即兩個物件的內容是否相等。用於比較引用 和 比較基本資料型別時具有不同的功能 1.比較基本資料型別,如果兩個值相同,則結果為true 2.而在比較引用時,如果引用指向記憶體中的同一物件,結果為true s...

和equals的區別

和 equals 的區別 1.是乙個運算子。2.equals則是string物件的方法,可以.點 出來。我們比較無非就是這兩種 1 基本資料型別比較 2 引用物件比較 1 基本資料型別比較 和equals都比較兩個值是否相等。相等為true 否則為false 2 引用物件比較 和equals都是比較...