不对啊Integer

不对啊Integer

Integer c =100; Integer d = 100;我这边c==d的结果为true啊,我的是jdk1.8131,是不是后续的jdk版本做的修改?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

当c,d的范围属于 -128到127之间的时候,c==d结果为true;当c<-128或者 d>127的时候,结果为false。

-128<x<127的时候,会产生一个常量池,去存放x的值。如果两个变量都在这个范围内切相等,就等于常量池中的同一个值进行比较。

如果x的值不在上述范围,就不会被放到常量池,而是新建2个数值相等的不同对象。也就会出现false。

Tender10 2017-08-18 14:12:39

Integer c =100; Integer d = 100;c==d的结果为true。但是Integer c = new Integer(100); Integer d = new Integer(100);c==d的结果为false,这个在视频中都是有讲解的哦。


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师