先上源码
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
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;
}
首先判断两个字符串是否指向同一内存,如果是则返回true;
接下来,判断比较的这个对象是不是String的一个实例,不是则直接返回false;
如果是,则先比较二者长度是否相等,相等的条件下一个一个对比字符,如有不相等的字符则返回false
都相等则返回true