和 equal 的區別

2021-07-05 16:32:00 字數 761 閱讀 5792

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"執行速度快,因為"=="只是比較引用.

equal和「 」的區別

對於基本資料型別,判斷兩個變數的值是否相等。equal 不能用於基本資料型別。只能用於類變數。對於基本資料型別要用其包裝類。因為物件變數的儲存的是物件在記憶體中的路徑,即記憶體位址。所以用 比較時,即使物件的值相等,但是他們的記憶體位址不同,所以 的結果為false。故 用於比較兩個變數的值是否相等...

equal和「 」的區別

因為物件變數的儲存的是物件在記憶體中的路徑,即記憶體位址。所以用 比較時,即使物件的值相等,但是他們的記憶體位址不同,所以 的結果為false。故 用於比較兩個變數的值是否相等,而不是變數引用的物件是否相等。equal用於比較兩個物件是否相同型別,值是否相等。總之 比較的是值 變數 棧 記憶體中存放...

和 equal 的區別

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