Java中==和equals的区别
作者:互联网
"=="可以比较基本数据类型,也可以比较引用数据类型。如果比较基本数据类型比较的是变量中存储的值;如果比较引用类型比较的是变量中存储的地址引用。
equals()是Object类中继承过来的方法,每个引用类型都可以调用,默认继承的equals()方法的比较与"=="一致。如下代码所示:
public boolean equals(Object obj) {
return (this == obj);
}
如果想要改变比较规则,可以重写equals()方法,如Integer类、String类就是重写了equals()方法.....
以下就是String类重写的equals()方法:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
标签:return,String,区别,equals,value,anObject,Java,比较 来源: https://www.cnblogs.com/huangcc/p/11380327.html