【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

相关推荐
qq_12498707534 分钟前
基于协同过滤算法的在线教育资源推荐平台的设计与实现(源码+论文+部署+安装)
java·大数据·人工智能·spring boot·spring·毕业设计
总是学不会.5 分钟前
[特殊字符] 自动分区管理系统实践:让大型表维护更轻松
java·后端·数据库开发·开发
大筒木老辈子8 分钟前
C++笔记---并发支持库(future)
java·c++·笔记
全靠bug跑12 分钟前
Sentinel 服务保护实战:限流、隔离与熔断降级详解
java·sentinel
SHolmes185412 分钟前
给定某日的上班时间段,计算当日的工作时间总时长(Python)
开发语言·前端·python
五岳15 分钟前
Web层接口通用鉴权注解实践(基于JDK8)
java
咖啡の猫21 分钟前
Python字典元素的增、删、改操作
java·开发语言·python
gugugu.25 分钟前
Redis持久化机制详解(二):AOF持久化全解析
数据库·redis·缓存
Lucky小小吴29 分钟前
JAVA漫谈反序列化篇——笔记
java·开发语言·笔记
练习时长一年43 分钟前
LeetCode热题100(最小栈)
java·算法·leetcode