//object的equals方法是比较的对象的内存地址,而String的equals方法比较的是对象的值
//String中的equals()方法
public boolean equals(Object anObject) {
//首先 我们知道 引用类型 == 比较的是两个对象的内存地址 此处即理解为 若对比的两个对象内存地址相等 即值相等 直接返回 true
if (this == anObject) {
return true;
}
//判断入参是否为String类型实例
if (anObject instanceof String) {
//转为String
String anotherString = (String)anObject;
//value 为调用此方法的实例 获取value的长度
int n = value.length;
//判断 调用的实例和入参参数长度是否一致
if (n == anotherString.value.length) {
//将调用实例和入参实例转换为char数组
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;
}