==比较基本数据类型时比较的是值,比较引用类型时比较的是指向的地址,和Object的equal作用相同,只是String重写了equal方法,比较的是对象的内容
Object.equals()
public boolean equals(Object obj) {
//这里用了==来判断,说明==的作用和Object的equal的作用是相同的
return (this == obj);
}
String.equals()
public boolean equals(Object paramObject) {
if (this == paramObject)
return true;
//比较String中的每一个内容
if (paramObject instanceof String) {
String str = (String)paramObject;
int i = this.value.length;
if (i == str.value.length) {
char[] arrayOfChar1 = this.value;
char[] arrayOfChar2 = str.value;
for (byte b = 0; i-- != 0; b++) {
//遍历比较每一个字符,若有一个不相等,就返回false
if (arrayOfChar1[b] != arrayOfChar2[b])
return false;
}
return true;
}
}
return false;
}