如何“记住” equals 和 == 的区别?

Java 语言里的 equals方法其实是交给开发者去覆写的,让开发者自己去定义满足什么条件的两个Object是equal的。

所以我们不能单纯的说equals到底比较的是什么。你想知道一个类的equals方法是什么意思就是要去看定义。

Java中默认的 equals方法实现如下:

public boolean equals(Object obj) {   

 return (this == obj);

}



publicbooleanequals(ObjectanObject){

if(this==anObject){

returntrue;

}

if(anObjectinstanceofString){

StringanotherString=(String)anObject;

intn=count;

if(n==anotherString.count){

charv1[]=value;

charv2[]=anotherString.value;

inti=offset;

intj=anotherString.offset;

while(n--!=0){

if(v1[i++]!=v2[j++])

returnfalse;}

returntrue;

}}

returnfalse;

}

equals如何比较并不重要,但是不理解equals存在的目的就容易踩坑。

你可能感兴趣的:(如何“记住” equals 和 == 的区别?)