为什么Integer 要将 -127 ~ 128 缓存起来 ?
时间: 2024-01-24 21:17:49 浏览: 145
Integer类的缓存机制
在Java中,对于基本数据类型的包装类,比如Integer、Byte、Short等,为了提高性能,JVM使用了缓存技术。其中,Integer类有一个内部静态类IntegerCache,它缓存了-128到127之间的所有整数对象,所以在使用这些整数时,会直接返回缓存中的对象,而不是创建新的对象。
这样做的好处是可以减少对象的创建,提高程序的运行效率。另外,因为这些整数对象是不可变的,所以多个线程可以共享这些对象,从而提高内存利用率。
需要注意的是,这个缓存的范围可以通过`-XX:AutoBoxCacheMax=<size>`参数来控制,其中`<size>`表示缓存的最大值。如果超过了这个范围,就会创建新的对象。
阅读全文