equals 和 的區別

2021-09-20 21:49:10 字數 456 閱讀 5598

(1)對於基本型別來說,沒有equals方法,只能用==, 比較的是值

(2)對於引用型別來說,==比較的是引用位址, equals預設情況下,比較的也是引用位址。

但是我們可以重寫equals方法,來達到比較值的目的。 其中有乙個特殊的類 string, 在jdk原始碼裡面已經重寫了equals方法,實現了equals方法比較值。

object類上的equals原始碼

public boolean equals(object obj)
(3)重寫equals方法,一定要重寫hashcode方法。 如果重寫了equals,沒有重寫hashcode,會導致使用hash演算法的集合出問題,比如hashmap 導致值找不到。

(4) 如果兩個變數 equals返回true, 那麼兩個變數的hashcode一定相同。 兩個變數的hashcode相同,equals方法不一定返回true.

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都是比較...