首頁  >  文章  >  Java  >  java中「==」運算子和equals方法有什麼差別

java中「==」運算子和equals方法有什麼差別

王林
王林轉載
2020-07-04 16:37:302641瀏覽

java中「==」運算子和equals方法有什麼差別

區別如下:

(推薦學習:java入門程式

==運算子專門用來比較兩個變數的值是否相同,也就是用來比較變數所對應的記憶體中所儲存的數值是否相同,要比較兩個基本型別的資料或兩個引用變數是否相等只能用==運算子。

equals方法用來比較兩個獨立物件的內容是否相同,就好比去比較兩本書是否相同,它比較的兩個物件是獨立的。

範例:

String a = new String("AA");
String b = new String("AA");
System.out.println(a==b);
System.out.println(a.equals(b));

兩個new語句創建了兩個對象,然後用a,b兩個變數分別指向其中的一個對象,這是兩個不同的對象,ta們的首位址是不同的,即a,b中儲存的數值是不同的,所以表達式a==b將回傳false,而兩個物件中的內容是相同的,所以a,equals(b)回傳了true。

(影片教學推薦:java影片教學

注意:字串的比較基本上都是使用equals方法。

如果一個類別沒有自己定義的equals方法,那麼它將繼承Object類別的equals方法,Object類別的實作碼如下:

boolean equals(Object o)
{
return this==o;
}

這說明如果一個類別沒有自己定義的equals方法,ta預設的equals方法,等同於使用==運算符,也就是比較兩個變數所指向的物件是同一個物件。這時候使用equals和==。

會得到相同的結果! !如果希望寫的類別能夠比較兩個實例物件的內容是否相同,則需要覆寫equals方法!

以上是java中「==」運算子和equals方法有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除