Java的Integer类有一个内部的缓存机制,主要用于优化自动装箱(autoboxing)和拆箱(unboxing)的性能。这个特性首次引入于Java 5,旨在减少对频繁使用的小整数值的重复对象创建,从而提高性能和减少内存使用。
参数文档:Java Integer包装类缓存(cache)-CJavaPy
1、缓存范围
默认情况下,Integer缓存预先创建并存储了值在 -128
到 127
之间的整数对象。这个范围是固定的,因为它被定义为标准Java规范的一部分。-128
到 127
范围内的整数使用非常频繁,重用这些对象可以显著节省内存。
public class Main {
public static void main(String[] args) {
Integer integer1 = 3;
Integer integer2 = 3;
if (integer1 == integer2)
System.out.println("integer1 == integer2");
else
System.out.println("integer1 != integer2");
Integer integer3 = 300;
Integer integer4 = 300;
if (integer3 == integer4)
System.out.println("integer3 == integer4");
else
System.out.println("integer3 != integer4");
}
}