请教问题。
Integer i1 = new Integer(100); Integer i2 = new Integer(100); Integer i3 = 100; Integer i4 = 100; Integer i5 = 128; Integer i6 = 128; System.out.println(i1==i2);//false System.out.println(i1==i3);//false System.out.println(i3==i4);//true System.out.println(i5==i6);//false
老师我想问,Integer i1 = new Integer(100);是创建对象吧,放在什么地方?Integer i3 = 100;是创建对象么?它又是放在什么地方?他们对象的引用的值怎么为false?-128~127之间的数据不是在缓存区直接创建么。-128~127这个只是适合Integer吗?其他包装类适合吗?
13
收起
正在回答
1回答
同学你好,依次回答如下问题:
1、Integer i1 = new Integer(100);表示创建Integer 类型的对象,存放在堆中。
2、Integer i3 = 100;因为数值在-128~127之间所以不会创建对象,在缓存区中进行获取。
3、他们对象的引用的值怎么为false?i1和i3为false的原因是:对于包装类等号比较的是地址是否相等,而i1和i3存放在不同的地方,并且i1是new的对象,在堆中重新开辟的空间,所以返回false。
4、-128~127的缓存数据适用于Integer、Short、Byte、Long包装类。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星