java中“==”操作符和equals方法有什么區(qū)別

java中“==”操作符和equals方法有什么區(qū)別

區(qū)別如下:

(推薦學(xué)習(xí):java入門程序

==操作符專門用來比較兩個變量的值是否相同,也就是用于比較變量所對應(yīng)的內(nèi)存中所存儲的數(shù)值是否相同,要比較兩個基本類型的數(shù)據(jù)或兩個引用變量是否相等只能用==操作符。

equals方法用來比較兩個獨立對象的內(nèi)容是否相同,就好比去比較兩本書是否相同,它比較的兩個對象是獨立的。

示例:

String a = new String("AA");

String b = new String("AA");

System.out.println(a==b);

System.out.println(a.equals(b));

兩條new語句創(chuàng)建了兩個對象,然后用a,b兩個變量分別指向其中的一個對象,這是兩個不同的對象,ta們的首地址是不同的,即a,b中存儲的數(shù)值是不同的,所以表達式a==b將返回false,而兩個對象中的內(nèi)容是相同的,所以a,equals(b)返回了true。

(視頻教程推薦:java視頻教程

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

如果一個類沒有自己定義的equals方法,那么它將繼承Object類的equals方法,Object類的的實現(xiàn)代碼如下:

boolean equals(Object o)

{

return this==o;

}

這說明如果一個類沒有自己定義的equals方法,ta默認的equals方法,等同于使用==操作符,也就是比較兩個變量指向的對象是同一個對象。這時候使用equals和==。

會得到相同的結(jié)果??!如果希望寫的類能夠比較兩個實例對象的內(nèi)容是否相同,則需要覆蓋equals方法!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容