Java中 與 equals的區別

2021-06-16 02:56:19 字數 359 閱讀 1122

== :比較的是引用,較equals嚴格,要求兩個比較物件指向同乙個物件的位址。

equals :比較的是值相等,可以是兩個不同的物件引用。

注意有一點:equals是object物件的成員方法,也就是說我們可以通過重寫equals

改變判斷兩個物件的值相等的標準,完全有可能兩個物件的值理論上不相等(如3!=5)通過

改寫equals方法讓他們相等。

而至於同乙個類的兩個物件例項為什麼不同了,好像是這樣的:乙個類每生成乙個物件

例項就會產生乙個序列號,如每個人一生下來就有乙個身份證id,這個id正是寫在equals

方法中成為判斷兩個類例項是否相等的標準。

還請高人指點上述存在的問題。

java中equals()與 區別

int a 10 int b 10 則a b將是true。但不好理解的地方是 string a new string foo string b new string foo 則a b將返回false。物件變數其實是乙個引用,它們的值是指向物件所在的記憶體位址,而不是物件本身。a和b都使用了new操作...

java中「 」 與 equals 區別

首先這是乙個很經典的例子,我們可以編寫乙個簡單的例子如下 有上述例子我們可以知道,是比較的我們資料位址,而equals則比較的是資料內容,a b,因為a,b為常量在常量池中為同意資料塊,所以相等,a1,b1是不同物件,在堆中儲存在不同區域,位址不同,所以a1 b1為false 那麼有些就奇怪了,為什...

java中equals 與 的區別

public class teststring 這個程式真是簡單啊!可是有什麼問題呢?1.來自 string 的憂慮 上面這段程式中,到底有幾個物件呢?可能很多人脫口而出 兩個,s1 和 s2 為什麼?string 是 final 類,它的值不可變。看起來似乎很有道理,那麼來檢測一下吧,稍微改動一下...