深入理解Integer缓存机制

本文深入探讨了Java中Integer的缓存策略,解释了在-128到127之间的整数如何被缓存以供重用,减少了对象实例创建的开销。Integer的缓存是通过IntegerCache内部类实现,自动装箱时触发,使用valueOf()方法。当超出缓存范围或未命中缓存时,会创建新的Integer对象。此外,文章还讨论了装箱和拆箱操作对性能的影响,以及何时选择使用包装类型数据。最后,预告了下一篇文章将讨论HashMap中'=='、'equals'和'hashCode'的关系。
摘要由CSDN通过智能技术生成

之前有对数据类型做介绍:

Java数据类型深度总结。

文中就有介绍到在JDK5以及JDK5之后Integer的自动装箱和拆箱。

#Integer缓存策略

虚拟机将创建在一定范围内(-128到127)的整数缓存到一个对象数组,以便进行重用。

缓存:先查缓存,查到了则从缓存中取,没有则重新创建。

为什么不说Int缓存策略而是Integer,说明我们的缓存策略是在自动装箱的时候触发。

那么啥时候会进行自动装箱呢,这样:

Integer a = 10;  //反编译:系统自动执行valueOf方法,拆箱则是:intValue方法。

这样一句代码就完成了自动装箱的操作:调用Integer的“valueOf()”方法。

public static Integer valueOf(int i) {
   
    //low:-128,high:127。
    if 
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值