为什么 Integer 缓存介于 -128 和 127 之间的值?
关于上一个问题,已经确定 Integer 类缓存介于 -128 和 127 之间的值 - 128 和 127。这促使人们询问为什么这个特定范围是
Java 语言规范 (JLS) 要求缓存 -128 到 127 之间的整数。其基本原理是确保这些值的装箱始终产生相同的引用,从而保证常见情况下的不可区分性。这可以提高性能,而不会造成过多的内存开销,尤其是在资源受限的设备上。
频繁请求 -128 到 127 之间的值
范围的选择可以是归因于该区间内的整数被普遍使用的假设。虽然存在主观性,但某些因素可能支持这一假设:
缓存范围之外的其他值
虽然 JLS 要求缓存 -128 到 127 范围,但文档建议也可以缓存其他值。这可以通过 -XX:AutoBoxCacheMax JVM 选项进行配置。它允许开发人员指定规定范围之外的缓存值的最大数量,为需要对特定范围的整数进行高效装箱的应用程序提供了灵活性。
但是,需要注意的是,此选项是特定于实现的并且可能不适用于所有 JVM。
以上是为什么Java只缓存-128到127之间的整数?的详细内容。更多信息请关注PHP中文网其他相关文章!