【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

相关推荐
Yvonne爱编码2 分钟前
二叉树高频题精讲 | 从入门到熟练掌握二叉树操作
java·开发语言·数据结构·链表·二叉树
kaikaile19952 分钟前
基于PCNN和NSCT的图像融合MATLAB实现
开发语言·图像处理·算法·matlab
山栀shanzhi12 分钟前
C++ 核心机制解析:#pragma once 与 extern 的具体职责与区别
开发语言·c++·面试
blurblurblun12 分钟前
Redis底层专题(1)------ sds字符串
数据库·redis·缓存
wuqingshun31415913 分钟前
说说java中实现多线程有几种方法
java·开发语言·jvm
于眠牧北15 分钟前
重写RedisTemplate后在lua脚本中传递参数不需要二次转换
java·junit·lua
深蓝轨迹16 分钟前
SQL优化及实战分享
java·数据库·sql
hashiqimiya23 分钟前
尝试其他项目使用本地仓库的jar包时报错没找到类的原因并下载到本地仓库
java·jar
常利兵31 分钟前
Spring Boot + MyBatis,给数据穿上“隐形盔甲”
java·spring boot·mybatis
qq_4061761433 分钟前
详解Vue中的计算属性(computed)和观察属性(watch)
开发语言·前端·javascript·vue.js·前端框架