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