String的equals方法源码分析
public boolean equals(Object anObject) {
if (this == anObject) {// 比较地址
return true;// 地址相同返回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;// 不一样就返回false
i++;
}
return true;// 每一位都一样 返回true
}
}
return false;// 类型不同也是错的
}