基礎Java03

 關於 「==」 和 「equals」 java

  1) 對於Object類來講 「==」 和 「equals」 是等價的,判斷引用是否指向同一個對象。this

       API 實現: public boolean equals(Object obj) {spa

                                return (this == obj);code

                          }對象

  2)對於String類來講,「equals」 方法重寫了Object類的「equals」,
it

        能夠用來比較兩個String類型的字面值是否相等,而不僅是判斷是否指向同一個對象。class

        API實現:    引用

 
public boolean equals(Object anObject) {
	if (this == anObject) {
	    return true;
	}
	if (anObject instanceof String) {
            // 向下類型轉換,重要
	    String anotherString = (String)anObject;
	    int n = count;
	    if (n == anotherString.count) {
		char v1[] = value;
		char v2[] = anotherString.value;
		int i = offset;
		int j = anotherString.offset;
		while (n-- != 0) {
		    if (v1[i++] != v2[j++])
			return false;
		}
		return true;
	    }
	}
	return false;
    }

   3)對於其它沒有重寫父類Object中equals方法的類來講,方法

        「==」 和 "equals"同樣。而對於有重寫的equals的類來講,tab

        就要看具體的實現了。

      因此不能籠統地說:「==」是用來比較引用是否相等,"equals"用來比值是否相等。

相關文章
相關標籤/搜索