equals和 的區別

2021-10-10 18:36:35 字數 754 閱讀 8345

==

(1)如果比較的是基礎資料型別,那麼 == 比較的是他們的值是否相同

(2)如果比較的是引用資料型別,那麼 == 比較的是他們的引用位址是否相同,也就是比較的棧中區域性變數表裡的 reference 引用是否相同。

equals

(1)equals 是乙個 object 類中的方法,從原始碼可以知道,他比較的是兩個物件的引用位址是否相

(2)但是其他類會重寫 object 類中的 equals 方法,重新定義比較的規則,像 string 中就重寫了 equals 方法,他比較的是兩個 string 物件的值內容是否相同,也就是比較兩個 string 物件指向的堆上例項資料是否相同。

(1)當資料是基本資料型別時,只能用 == 來比較他們的值是否相同,不能用 equals 來比較

(2)當 equals 沒有發生重寫時,equals 和 「==」 相同,都是比較兩個物件的引用位址是否相同

(3)如果 equals 被其他類重寫,那麼就需要按照重寫的規則來比較,例如 string 類將 equals 方法修改為比較兩個物件的值內容是否相同string 當中的 equals 方法原始碼

(1)首先通過 == 判斷兩者的位址是否相同,如果相同則為字串本身,直接返回 true

(2)接著判斷 object 是不是 string 型別,不是的話返回 false,是的話再進一步判斷

(3)獲取兩者的長度進行比較,長度不同直接返回 false,相同再繼續比較

(4)獲取兩者的字元陣列,通過迴圈依次判斷每一位字元是否相同

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