【JavaSE】Java基本数据类型缓存池

new Integer(18)Integer.valueOf(18)Integer.valueOf(300) 的区别

  • new Integer(18) :每次都会创建一个新对象
  • Integer.valueOf(x)
    • x in [-128, 127]:使用缓存池中的对象
    • x not in [-128, 127]:创建新对象

Integer缓存池大小:默认为 -127~128,可以通过JVM参数设置

Integer i = 18

  • 当引用是Integer类型,= 右侧是基本数据类型int时,会发生自动装箱
  • 底层其实是调用了Integer.valueOf()方法,因此也会用到缓存常量池


什么是Integer缓存?

前面所示的Integer缓存池其实就是Integer的一个静态内部类IntegerCache

相关推荐
廋到被风吹走2 小时前
【Spring】BeanPostProcessor详解
java·后端·spring
LFly_ice2 小时前
Next-4-路由导航
开发语言·前端·javascript
bbq粉刷匠2 小时前
二叉树中两个指定节点的最近公共祖先
java·算法
3824278272 小时前
python :__call__方法
开发语言·python
ppo922 小时前
Spring Boot 集成 Kafka 3.9.0:部署、监控与消息发送教程
java·架构
是Yu欸2 小时前
从Ascend C算子开发视角看CANN的“软硬协同”
c语言·开发语言·云原生·昇腾·ascend·cann·开放社区
黎雁·泠崖2 小时前
C 语言字符串进阶:strcpy/strcat/strcmp 精讲
c语言·开发语言
JavaEdge.2 小时前
IDEA卡死没反应的全部解决方案
java·ide·intellij-idea
高山上有一只小老虎2 小时前
使用Memory Analyzer (MAT)分析内存溢出
java·jvm
赴前尘3 小时前
golang获取一个系统中没有被占用的端口
开发语言·后端·golang