我是Java和StackOverflow的新手,但正如我所读的,关于它们等于的一些答案:
Equals方法比较两个对象的身份,如果它们是
相同,它返回TRUE。而如果您不重写方法Equals
它的作用类似于==(如果2个变量引用同一对象,则返回true)。
Integer x = new Integer(4);
Integer y = new Integer(4);
System.out.println(x.equals(y));
System.out.println(x == y);
如果上面的查询是正确的,那么由于我们没有覆盖方法equals,为什么此代码会显示TRUE和FALSE?
答案 0 :(得分:3)
由于类Integer
确实覆盖了equals方法,因此其实现如下:
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}