euqals 與 "=="

1.對於java的基本類型,只能用 「==」 來判斷值是否相等。java

2.對於Java的對象:數組

    2.1 若是用的是「==」,那麼是判斷的是兩個對象的引用地址是否相同。設計

    2.2  若是用的是equals(), 那麼分析以下:對象

    1)對於通常的對象都繼承與Object,且沒有重寫equals(),。繼承

            沒有重寫equals()方法的源碼:equals與==是等效,比較的是兩個對象的引用地址是否相同。圖片

            圖片

    2)String 對象特例,由於重寫了equals方法:字符串

 爲了不繫統中大量產生String對象,因而就設計了一個字符串池(String Pool),它所容納的可是String對象。源碼

    建立機制是這樣的:引用

    

String 重寫的equals()方法:方法

將此字符串與指定的對象進行比較。當且僅當參數不是null而且是表示與此對象相同的字符序列的String對象時,結果爲true。

圖片

判斷條件:

    1.若當前對象和比較的對象是同一個對象,即return true。也就是Object中的equals方法。

    2.若當前傳入的對象是String類型,則比較兩個字符串的長度,即value.length的長度。

  若長度不相同,則return false

  若長度相同,則按照數組value中的每一位進行比較,不一樣,則返回false。若每一位都相同,則返回true。

  若當前傳入的對象不是String類型,則直接返回false

相關文章
相關標籤/搜索