區別如下:
(推薦學習: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中文網其他相關文章!