首页 >Java >java教程 >为什么 Java 中的整数包装对象仅在 -128 到 127 之间共享实例?

为什么 Java 中的整数包装对象仅在 -128 到 127 之间共享实例?

Patricia Arquette
Patricia Arquette原创
2024-11-27 21:08:10891浏览

Why Do Integer Wrapper Objects in Java Share Instances Only Between -128 and 127?

整数包装对象共享 -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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn