1. 程式人生 > >equals和==區別

equals和==區別

==:

==比較的是變數(棧)記憶體中存放的物件的(堆)記憶體地址,用來判斷兩個物件的地址是否一致,即是否指向同一個物件。是真正意義上的指標的比較。

 1、比較的是操作符兩端的操作值最後指向的物件是否是同一個物件。

2、兩邊的運算元必須是同一型別的操作值(可以是父子型別)才能通過編譯。

3、如果指向的是物件,則比較的是物件的地址。如果指向的是基本資料型別的值,則就會進行數值的自動轉換,對轉換後的值進行比較。

byte->short , char->int->long

float->double

int ->float

long->double

 

equals:

equals呼叫的是物件自帶的一種比較方法,因為所有的物件都繼承java.lang.Object物件,所以所有物件都有equals方法。

1、Object物件的equals就是對物件記憶體地址的比較,實現是==比較。

2、其他物件則會重寫equals方法。首先判斷比較物件的比較類是否與被比較物件屬於父子類關係。再進行其他操作。

例如:Long:

String: