这个问题在这里已有答案:
以下是String类中的equals方法:
public boolean equals(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;
}
比较是什么:第一个if语句中的'this == anObject'是什么意思?
它比较作为参数传递的对象和您调用的对象的内存地址。如果它们位于相同的内存地址中,则它们显然是同一个对象。
否则,它会继续检查其他比较方法,如果它们实际上是等效对象。