==
比较对象的引用地址是否相等
equals
比较值是否相等
-
先判断对象引用地址是否相等
-
再判断是否String类型
-
最后判断字符串长度和所有字符是否相等
public boolean equals(Object anObject) { if (this == anObject) { //1、先判断对象引用地址是否相等 return true; } if (anObject instanceof String) {//2、再判断是否String类型 String anotherString = (String)anObject; int n = value.length; //3、最后判断字符串长度和所有字符是否相等 if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }