1.Object类中的equals(Object obj) 与 操作符“==”是相同的,都表示地址值相等,意思也就是同一个对象
Object equals(Object obj)源码:
public boolean equals(Object obj) {
return (this == obj); //此处说明与"=="相同
}
2.String类的equals(Object obj)和 操作符“==”的区别
首页,Object类是Java中所有类的根类,所有类都是Object类的子类,子类将拥有父类的equals方法,而String在继承Object类时,重写了Object类的equals方法
String equals(Object obj)源码:
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;
}//可以发现,1,当为同一对象时,直接返回true,2,如果是不同对象,将比较其内容是否相同,相同返回true
本文详细解析了Java中Object类的equals方法与String类重写该方法的区别,对比了equals方法和“==”操作符的不同之处,并通过源码展示了如何判断两个对象是否相等。
1008

被折叠的 条评论
为什么被折叠?



