java中「 」 與 equals 區別

2021-08-11 11:26:39 字數 536 閱讀 5580

首先這是乙個很經典的例子,我們可以編寫乙個簡單的例子如下:

有上述例子我們可以知道,「==」是比較的我們資料位址,而equals則比較的是資料內容,a==b,因為a,b為常量在常量池中為同意資料塊,所以相等,a1,b1是不同物件,在堆中儲存在不同區域,位址不同,所以a1 == b1為false ,那麼有些就奇怪了,為什麼person equals比較為false呢?此時我們就應該看其原理,person呼叫的是object equals方法,那麼object equals是怎麼比較的呢?如下:

有以上可知,stirng的比較是獲取值之後比較每乙個字元,所以a1.equals(b1)為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 與 的區別

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

Java中 與equals的區別

equals和 是兩個很容易混淆也是很多初學者容易搞不清的比較 方法 下面舉個例子,大家就一目了然了 比如 integer int1 new integer 1 integer int2 new integer 1 string str1 new string hello string str2 n...