java Integer.ValueOf(int)和new Integer(int)性能比较

本文详细解读了Java Integer.valueOf(int)方法内部如何通过缓存机制优化性能,特别关注了对-128到127范围内整数的预计算并缓存处理,显著减少了对象创建次数,提升效率。通过实例代码演示了该优化原理及应用,同时对比了不同整数值赋值时对象创建情况,展示了缓存机制的高效利用。

JDK的源码,看看到Integer.ValueOf(int)里面做了什么优化:

 

从源代码可以知道,ValueOf对-128~127这256个值做了缓存(IntegerCache),如果int值的范围是:-128~127,在ValueOf(int)时,他会直接返回IntegerCache的缓存给你。

 

 

结果是:

true
false

因为:java在编译的时候 Integer a = 100; 被翻译成-> Integer a = Integer.valueOf(100);,所以a和b得到都是一个Cache对象,并且是同一个!而c和d是新创建的两个不同的对象,所以c自然不等于d。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值