为了账号安全,请及时绑定邮箱和手机立即绑定

Integer类型数据何时==?

Integer类型数据何时==?

shenzhi 2017-03-06 14:32:54
Integer i1= new Integer(1); Integer i2= new Integer(1); Integer i3=i1+i2; Integer i4=2; System.out.println(i1==i2);//false System.out.println(i3==i4);//true为什么i1==i2是false,但是i3==i4是true呢?
查看完整描述

1 回答

已采纳
?
慕粉3233872

TA贡献70条经验 获得超29个赞

==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。

new Integer(1) 和Integer a = 1不同,前者会创建新的对象,存储在堆中,而后者如果在-128到127的范围内,不会创建新的对象,而是从IntegerCache中获取。

查看完整回答
反对 回复 2017-03-06
  • 1 回答
  • 0 关注
  • 1054 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信