equals()与==比较

==比较的是对象的引用地址。

如果不重写equals()方法,则默认比较的是对象的引用地址,因为Object类中的equals()方法比较的是对象的引用地址

1
2
3
public boolean (Object obj) {
return this == obj;
}

特别的,String类已经重写了equals()方法

1
2
3
4
5
6
7
8
9
10
11
12
13
public boolean (Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String aString = (String)anObject;
if (coder() == aString.coder()) {
return isLatin1() ? StringLatin1.equals(value, aString.value)
: StringUTF16.equals(value, aString.value);
}
}
return false;
}