與equals的區別

2021-07-02 05:29:09 字數 761 閱讀 1570

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】false 

-----【st3==st4】true

-----【st1.equals(st2)】false 

-----【(st1+st2).equals(st3)】true 

-----【st3.equals(st4)】true

總之:「==」比較的是

值【變數(棧)記憶體中存放的物件的(堆)記憶體位址】

equal用於比較兩個物件的值是否相同【不是比位址】

【特別注意】object類中的equals方法和「==」是一樣的,沒有區別,而string類,integer類等等一些類,是重寫了equals方法,才使得equals和「==不同」,所以,當自己建立類時,自動繼承了object的equals方法,要想實現不同的等於比較,必須重寫equals方法。

"=="比"equal"執行速度快,因為"=="只是比較引用.

與equals的區別

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

與 equals的區別

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

equals與 的區別

equals 對於沒有重寫equals 方法的物件來說,與 相同,類似string integer重寫了equals方法的比較的是值 而 是比較兩個物件的位址 例如 string a 123 string b 123 string c new string 123 system.out.printl...