"=="和equals的區(qū)別

== : 它的作用是判斷兩個對象的地址是不是相等。即,判斷兩個對象是不是同一個對象(基本數(shù)據(jù)類型==比較的是值,引用數(shù)據(jù)類型==比較的是內(nèi)存地址)。
equals() : 它的作用也是判斷兩個對象是否相等。但它一般有兩種使用情況:

情況1:類沒有覆蓋 equals() 方法。則通過 equals() 比較該類的兩個對象時,等價于通過“==”比較這兩個對象。
情況2:類覆蓋了 equals() 方法。一般,我們都覆蓋 equals() 方法來比較兩個對象的內(nèi)容是否相等;若它們的內(nèi)容相等,則返回 true (即,認為這兩個對象相等)。
Tips:
String的equals是重載過的,如果是兩個String相比較會比較值,否則會使用"==",使用new String會開辟新的空間,使用==比較的話得到的結果為false:

    String a = new String("ab"); // a 為一個引用
    String b = new String("ab"); // b為另一個引用,對象的內(nèi)容一樣
    System.out.println(a.equals(b));//true
    System.out.println(a==b);//false

而使用String str ="XXX"的形式則會放入常量池,再次定義同樣的變量時會先去String pool中查找,如果找到的話,將常量池中的地址指向新定義的引用,所以使用"=="比較得到的結果是false:

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

相關閱讀更多精彩內(nèi)容

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