首頁  >  文章  >  Java  >  為什麼 Java 中的整數包裝物件僅在 -128 到 127 之間共用實例?

為什麼 Java 中的整數包裝物件僅在 -128 到 127 之間共用實例?

Patricia Arquette
Patricia Arquette原創
2024-11-27 21:08:10855瀏覽

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