【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

相关推荐
jolimark几秒前
Spring Boot 集成 Kettle
java·spring boot·后端
云栖笑笑生2 分钟前
Java中变量的定义及注意事项
java
牛马1114 分钟前
Flutter CustomPaint
开发语言·前端·javascript
玛卡巴卡ldf5 分钟前
【LeetCode 手撕算法】(子串) 560-和为 K 的子数组
java·数据结构·算法·leetcode
wuxinyan1239 分钟前
Java面试题45:一文深入了解Spring 事务原理
java·spring·面试·事务
重庆兔巴哥13 分钟前
Java环境变量配置不成功,会有什么症状?
java·开发语言
大黄说说14 分钟前
不可变数据:函数式编程的基石与双刃剑
开发语言
不只会拍照的程序猿16 分钟前
《嵌入式AI筑基笔记02:Python数据类型02,从C的“硬核”到Python的“包容”》
开发语言·笔记·python
无限进步_16 分钟前
深入解析list:一个完整的C++双向链表实现
开发语言·c++·git·链表·github·list·visual studio
cjy00011126 分钟前
Spring学习——新建module模块
java·学习·spring