Java中euqals方法解惑
1.超类object中定义的equals方法与运算符“==”的作用相同,都是判断两个对象所引用的内存地址是否相同。
源码:java.lang.Object
1 public boolean equals(Object obj) { 2 return (this == obj); 3 }
2.String类重写了Object累的equals方法
源码:java.lang.String
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = count; if (n == anotherString.count) { char v1[] = value; char v2[] = anotherString.value; int i = offset; int j = anotherString.offset; while (n-- != 0) { if (v1[i++] != v2[j++]) return false; } return true; } } return false; }
3.如果自己定义的类,需要自己重写equals方法,否则会继承Object类中equals方法。