與 equals 的區別

2021-10-05 22:56:06 字數 583 閱讀 6815

== : 它的作用是判斷兩個物件的位址是不是相等。即,判斷兩個物件是不是同乙個物件。

(基本資料型別==比較的是值,引用資料型別==比較的是記憶體位址)

equals() : 它的作用也是判斷兩個物件是否相等。但它一般有兩種使用情況:

情況1:類沒有覆蓋 equals() 方法。則通過 equals() 比較該類的兩個物件時,等價於通過「==」比較這兩個物件。

情況2:類覆蓋了 equals() 方法。一般,我們都覆蓋 equals() 方法來比較兩個物件的內容是否相等;若它們的內容相等,則返回 true (即,認為這兩個物件相等)。

舉個例子:

public class test1 

}}

說明:

string 中的 equals 方法是被重寫過的,因為 object 的 equals 方法是比較的物件的記憶體位址,而 string 的 equals 方法比較的是物件的值。

當建立 string 型別的物件時,虛擬機會在常量池中查詢有沒有已經存在的值和要建立的值相同的物件,如果有

就把它賦給當前引用。如果沒有就在常量池中重新建立乙個 string 物件。

與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...