整数包装对象共享 -128 到 127 范围内的实例
出现在特定值范围内共享实例的整数包装对象的行为来自 Java 语言规范 (JLS)。根据 JLS 5.1.7,某些原始值的装箱转换会产生相同的引用:
对于 true、false、byte、char(范围 u0000 到 u007f)以及 -128 到 127 之间的 int 或短数字,从这些值创建的包装对象将始终是相同的。
此规范允许务实的效率,同时确保典型的期望行为场景。将某些常见值缓存为对象有助于减少装箱转换期间的内存开销。但是,实现可以决定是缓存所有指定值还是仅缓存指定值的子集,对于 char 和 Short 值以及 int 和 long 值,范围从 -32K 到 32K。
因此,整数包装对象共享相同的实例只在-128到127的值范围内,因为它是由Java语言规范决定的,旨在平衡内存效率和值转换的可预测性。
以上是为什么 Java 中的整数包装对象仅在 -128 到 127 之间共享实例?的详细内容。更多信息请关注PHP中文网其他相关文章!