Java中关于自动装箱的小知识

博客介绍了Java中自动装箱的情况。以Interger类型为例,当参数在-128到127之间,自动装箱会从常量池判断有无该数据,有则直接产生,无则实例化;超出此范围则会执行new操作。还指出Double和Float不具有常量池功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Interger one = 100;
Interger Two = 200;
上述两行代码都是自动装箱,但第一行代码实际上执行的是:
Interger One = Integer.valueOf(100);
当我们再次对100进行自动装箱时:
Integer Tree = 100;
Tree和One会是同一个引用,One==Tree为true。

而第二行执行的代码是:
Integer Two = new Integer(200);
当我们再次对200进行自动装箱时:
Integer Four = 200;
会再次执行new操作,所以Two == Four为false。

产生这种结果的原因是 :
当参数在-128到127之间时,会从常量池判断有没有该数据,若有则直接产生;若没有,则实例化Integer。
注意:Double和Float不具有常量池的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值