==比較兩個物件在記憶體中是不是同乙個物件,就是說在記憶體中儲存位置一致。兩個string物件儲存的值是一樣的,但有可能在記憶體裡儲存在不同的地方 .
==比較的是引用(記憶體位址),而equals方法比較的是內容。
public booleanequals(object obj) 這個方法是由object物件提供的,可以由子類進行重寫。
預設的實現只有當物件和自身進行比較時才會返回true,這個時候和==是等價的。
string, bitset, date, 和file都對equals方法進行了重寫,對兩個string物件 而言,值相等意味著它們包含同樣的字串行。
對於基本型別的包裝類來說,值相等意味著對應的基本型別的值一樣。
public class
equalstest
}
== comparison : true== comparison : true
using equals method : true
false
using equals method :true
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 類,它的值不可變。看起來似乎很有道理,那麼來檢測一下吧,稍微改動一下...