//String类equals源码
public boolean equals(Object anObject) {
//如果是对象自己和自己进行比较,直接返回true
if (this == anObject) {
return true;
}
//判断两个对象是否是相同类型,如果不是直接返回false
if (anObject instanceof String) {
//将对象类型向下转型为--String类型
String anotherString = (String) anObject;
//String类静态成员变量value: this.value = new char[0];将String类找对象转化value数组
int n = value.length;//char[] value = s1.toCharArray();
//比较俩个数组的长度是否相同,不同直接返回false
if (n == anotherString.value.length) {
//比较的两个对象赋值字符串数组
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
//只要其中一个元素不同,就返回false
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
} |
|