與equals的區別

2022-08-29 07:15:10 字數 514 閱讀 3583

1.使用string new出兩個物件,a和b,使這兩個物件的值相等

使用a==b輸出flase,這是因為==比較的是記憶體空間開闢出來的位址,string建立的兩個物件的位址是不一樣的;

使用a.equals(b)輸出true,這是因為equals比較的是兩個物件的內容。

2.如果乙個類沒有自己定義equals方法,那麼它將繼承object類的equals方法,object類的equals方法的實現**如下:這說明,如果乙個類沒有自己定義equals方法,它預設的equals方法(從object類繼承的)就是使用==操作符,也是在比較兩個變數指向的物件是否是同一物件,這時候使用equals和使用==會得到同樣的結果,如果比較的是兩個獨立的物件則總返回false。如果你編寫的類希望能夠比較該類建立的兩個例項物件的內容是否相同,那麼你必須覆蓋equals方法,由你自己寫**來決定在什麼情況即可認為兩個物件的內容是相同的。

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