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:46
推荐回答(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:

楼上的说的很好。