【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

相关推荐
努力的小南8 分钟前
Java字节码文件常量池索引两个问题
java·常量池·字节码文件·黑马jvm字节码文件常量池索引
期待のcode13 分钟前
Java的抽象类和接口
java·开发语言
while(1){yan}16 分钟前
SpringDI
java·jvm·spring·java-ee
陈平安安18 分钟前
设计一个秒杀功能
java·数据库·sql
TAEHENGV29 分钟前
基本设置模块 Cordova 与 OpenHarmony 混合开发实战
android·java·数据库
wadesir35 分钟前
Go语言中高效读取数据(详解io包的ReadAll函数用法)
开发语言·后端·golang
千寻技术帮38 分钟前
10422_基于Springboot的教务管理系统
java·spring boot·后端·vue·教务管理
milanleon1 小时前
使用Spring Security进行登录认证
java·前端·spring
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 三叶草中石油信息管理系统的设计与实现为例,包含答辩的问题和答案
java·eclipse