我們知道String中的equals方法是被重寫過的,因為object的equals方法是比較的對象的內存地址,而String的equals方法比較的是對象的值。
首先幾個知識點:
基本數據類型==比較的是值,引用數據類型==比較的是內存地址。
所以我的思路是:
將兩個String對象都變成char數組,然后進行數組內容的對比即可。
JDK中的源碼是:
public boolean equals(Object anObject) { //如果是同一個對象 if (this == anObject) { return true; } //如果傳遞進來的參數是String類的實例 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; }