【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

相关推荐
奋斗的小monkey28 分钟前
Spring Boot 3.x核心特性与性能优化实战
java·spring boot·微服务·性能优化·响应式编程
程序猿DD1 小时前
将 GPU 级性能带到企业级 Java:CUDA 集成实用指南
java·架构
一成码农2 小时前
JavaSE面向对象(上)
java
wjs20242 小时前
SQL AND & OR 操作符详解
开发语言
qq_574656252 小时前
java-代码随想录第66天|Floyd 算法、A * 算法精讲 (A star算法)
java·算法·leetcode·图论
我是好小孩2 小时前
【Android】六大设计原则
android·java·运维·服务器·设计模式
~光~~2 小时前
【环境配置 】WSL2 +ubuntu20.04 +Qt配置+Kits配置
开发语言·qt·ubuntu
小霞在敲代码2 小时前
HashMap - 底层原理
java·hashmap
·心猿意码·2 小时前
C++右值语义解析
开发语言·c++