! 和equals 的區別

2021-08-31 12:23:21 字數 434 閱讀 5050

例子:

public class e

}//output:false;true

這是為什麼呢,為什麼超乎了大家的想象,兩個值命名都是11,但是輸出結果卻正好相反。原因就是==和!=操作符比較的是物件的引用,而不是物件的值。

如果要比較兩個物件的實際內容是不是相同就要運用equeals(),但是這個方法並不適用於基本型別,就像集合物件不適用於基本型別一樣,基本型別比較內容時直接使用==和!=即可。

public class e

}//output:true

結果顯示,正如我所說,然而加入我們建立自己的類

class a

class b

}//output:false

為什麼又是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都是比較...