==和equals的区别
程序员文章站
2022-05-20 22:08:45
...
最近有个朋友问我==和equals的区别,我顺便总结一下.
我在网上找了一个及其直观的图:
这边还要说明一点就是,如果子类没有复写Object的equals方法,那么利用的就是Object的equals方法,而Object的equals方法,通过查看源码: 比较的是地址值!
public boolean equals(Object obj) {
return (this == obj);
}
这边还要多唠叨两句,其实equals方法属于Object类,提供出来就是方便我们复写的.为什么要给我们提供这样一个复写的方法?就是方便我们定义一个类的时候,可以自定义判断相等equals的方法.
比如说,java里面的Spring类就提供了这样的方法.
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;
}
如果还有不太明白的小伙伴,可以留言共同讨论一下哦!
上一篇: 清朝军机大臣真的有实权的吗 为什么说他们是一群临时工呢
下一篇: ==和equals的区别