永发信息网

java Integer 它们相等吗?

答案:6  悬赏:60  手机版
解决时间 2021-12-01 15:36
java Integer 它们相等吗?
最佳答案
不相等
在给Integer赋值时,实际上是自动装箱的过程,也就是调用了Integer.valueOf(int)方法,当这个值大于等于-128并且小于等于127时使用了常量池,所以前两个地址是相等的,但是后两个超过了127,故不使用常量池。

也就是说
Integer -128~127实际上你可以看成是整形int,所以第一个类的输出结果应该是==
Interger 128以上的数值就不能看成int了,他是对象,两个值相同的不同的对象如果用==判断肯定是不等的,可以用equals判断。
全部回答
应该都是输出 !=
因为你这里使用的是 Integer class,不是使用的基础类型int, 类的比较是使用 equals
如果改成以下语句结果就会不同了。
if(i1.equals(i2)){
System.out.println("==");
}else{
System.out.println("!=");
}
不想等!因为它们比较的不是value而是地址,它们在电脑中的地址不相等的!
自动装箱是对于从 -128 到 127 之间的信息值,它们在被装箱为 对象数据后会在内存中被重用.所以上面两个是不相同的.
127是个临界点,127包括127以前的是i1==i2,127以后就是i1!=i2,Integer类型的变量当赋值-128到127之内的值的时候,它是会去类似于字符串常量池的一个Integer的池中去取,所以值超过127就为false
Java中Integer和int存在Autoboxing,int自动装箱成Integer的过程中,如果数值是在-128~127之间的值的话,那么会在在内存中供重用
也就是说
Integer -128~127实际上你可以看成是整形int,所以第一个类的输出结果应该是==
Interger 128以上的数值就不能看成int了,他是对象,两个值相同的不同的对象如果用==判断肯定是不等的,可以用equals判断
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
by2的一首歌
0、56x8分之五等于多少
求妖攻x秀才受的耽美小说。
华为p6s和 华为p6有什么不同吗?
438分淮阳淮中招收吗?
电厂专用滤油机选择标准?
打仗还高兴,是不是假戏?
灯谜:先生个儿不高(打一字)谜底为尬,怎么解
沈阳北站t302和g1288站台离多远
北京南站高铁g33在哪里检票
广州刚古金属制品有限公司怎么样?
纯银杯和不是纯银杯的差别
Acer宏碁K192HQL b和优派VA2025-A哪个好
单反中灰镜与偏振片有什么区别
假如宋江不招安是什么结局
推荐资讯
求贝贝修儿《我的天空》歌词
创业失败过,成功过又失败过。今年26但从未放
单选题由一种元素组成的物质A.一定是单质B.一
送给朋友情侣的祝福话语!
解构主义和后现代主义有什么区别?
格力售后需要什么条件
我想去哈尔滨征仪路乘坐多少路公交车
我是女生家里盖房子了,我暂时和我姐一个屋子
下列各项中,有利于中国新的阶级力量发展的是:
60度电够2天用吗,没什么电器,就个电炒锅和
高三自我评价怎么写
NE信号指发动机什么信号?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?