6 equals與 的區別。

2021-08-10 20:25:03 字數 986 閱讀 1329

對於這個問題,首先我們要知道這兩個操作各自代表著什麼意思。

對於這個大多數更多常用於原生型別和物件。

原生模擬如有boolean,int,float等基本資料型別,很好比較。

物件就需要注意的是,我們使用==進行比較時,不是比較物件的值,而是兩個物件引用是否相同,有時候,也可以理解為比較兩個物件的引用位址是否相同,相同則會返回true,不同返回false。

equals()方法定義在object類裡面,根據具體的情況來定義該方法。用於檢查兩個物件的相等性。預設的equals與compareto保持一致。

至於兩個的區別:

我們這麼理解是最好的:

舉個例:有

兩個長的一模一樣的人,我們只能說他們長的相同(equals),但是不能說是同乙個人。只有從頭到尾甚至身份是乙個人才算是==。

==是比較兩個變數或者例項指向同乙個記憶體空間位址是否相等。(對記憶體位址,對引用進行比較)

equals是比較兩個變數或者例項指向的同一記憶體空間的值是否相等(對物件值的內容,字串的值進行比較)

首先在基本變數中,只存在==操作比較,因為不可能會有int.equlas這種方法進行比較,所有的基本值變數都是直接存在堆疊中的,直接用==可以比較位址。

但是如果開始使用引用值變數時,就需要辨別兩種操作各自比較代表的含義了。在objecet中的equals中,預設的就是==操作,所以在很多類中,我們都需要重寫equals方法。最好的例子就是string類中,equals方法就是當兩個字串中的值相等,就返回true.

與equals的區別

注意 當比較兩個基本資料型別的變數是否相等時 基本資料型別包括 byte short int long float double 當它們的值相同時,則 結果就為true eg public class class6 1 public static void main string args stri...

與equals的區別

public class equaltest 執行結果為 t1 t2 false t1 t2 t3 true t3 t4 true i1.equals i2 false i3.equals i1 i2 true i3.equals i4 true st1 st2 false st1 st2 st3 ...

與 equals的區別

與equals都是比較兩個變數得到true或false。在進行比較時,先說說記憶體,記憶體分為堆和棧。基本資料型別中,是把值存在棧中,把值傳遞給變數,這種傳遞叫值傳遞。引用資料型別中,是在棧中存位址,堆中存的new的物件,給變數賦值傳遞時,傳的是位址,這種傳遞叫引用傳遞。基本資料型別 int a 1...