Java中==號與equals()的區別

1.==號在比較基本數據類型時比較的是,而用==號比較兩個對象時比較的是兩個對象的地址值

int x = 10;
int y = 10;
String str1 = new String("abc");
String str2 = new String("abc");
System.out.println(x == y); // 輸出true
System.out.println(str1 == str2); // 輸出false

那equals()方法呢?我們可以通過查看源碼知道,equals()方法存在於Object類中,因爲Object類是所有類的直接或間接父類,也就是說所有的類中的equals()方法都繼承自Object類,而通過源碼我們發現,Object類中equals()方法底層依賴的是==號,那麼,在所有沒有重寫equals()方法的類中,調用equals()方法其實和使用==號的效果一樣,也是比較的地址值,然而,Java提供的所有類中,絕大多數類都重寫了equals()方法,重寫後的equals()方法一般都是比較兩個對象的值


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章