先来看Object类的equals方法实现
public boolean equals(Object obj)
{
return (this==obj);
}
但String类重写了这个方法
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
所以要区别equals() 和== 的区别还要看不同类的具体实现,
一般情况下equals()用来判断值是否相等 ==判断是否一个对象
针对于Object类 equals 和obj 是一样的
而其他类,就得具体看看具体是怎么实现了