
int a = 127; Integer b = new Integer(127); System.out.println(a==b); System.out.pritnln(b.equals(a))
4个回答
展开全部
Integer已经重载了equals方法,实现如下:
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
所以你使用integer的equeals方法时会比较的是里面的值,上面的代码是JDK源码里面的interger的equals方法,看到这个应该很明白了
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
所以你使用integer的equeals方法时会比较的是里面的值,上面的代码是JDK源码里面的interger的equals方法,看到这个应该很明白了
追问
equals时肯定是true,但是用==号时,a是值变量所以存储的是127,但是b是引用变量,比较的时候是用b的地址值啊,怎么可能为true?
2012-06-07
展开全部
int 好像就是integer,只不过int是值类型;integer是类,“==”跟"equals()“一个效果
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
现在有自动包装解包 所以int和Integer可以这么用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的说的很好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询