int a = 127; Integer b = new Integer(127); System.out.println(a==b); System.out.pritnln(b.equals(a))

为什么上面的两个结果全是true?
2024年11月18日 23:02
有4个网友回答
网友(1):

Integer已经重载了equals方法,实现如下:
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}

所以你使用integer的equeals方法时会比较的是里面的值,上面的代码是JDK源码里面的interger的equals方法,看到这个应该很明白了

网友(2):

int 好像就是integer,只不过int是值类型;integer是类,“==”跟"equals()“一个效果

网友(3):

现在有自动包装解包 所以int和Integer可以这么用

网友(4):

楼上的说的很好。