黑马程序员技术交流社区
标题:
int和integer中==和equals的问题
[打印本页]
作者:
Seejun
时间:
2015-1-10 22:55
标题:
int和integer中==和equals的问题
int a=1;
integer a1=1;//integer a1=new integer("1")
求大神解释下a==a1和a.equals(a1)
作者:
jojo
时间:
2015-1-11 00:21
跟String是一样的
作者:
lgn187
时间:
2015-1-11 03:41
a只是一个基本数据类型的变量,怎么可能调用equals方法,编译都通不过。
至于说a == a1,是所谓的自动拆箱吧?拆了就是1,这肯定是true。
至于说Integer对象调用的equals方法,看下面:
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
上述代码说白了就是比较两个Integer对象的值value的大小。
所以,你可以认为a1.equals(a)等同于a1 == a,只不过前者是把a变量装箱,后者是a1拆箱。
作者:
常尚全
时间:
2015-1-11 14:56
==比较地址值(完全相等)
equals比较数值(内容相等)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2