整數快取-128 到127 範圍內的值:說明和自訂
在Java 中,Integer 類別儲存-128 到127之間的值127 在快取中。此功能可確保具有相同值的 Integer 物件之間比較的一致性(例如,Integer.valueOf("127") == Integer.valueOf("127"))。然而,問題出現了:為什麼這個特定範圍?
預設快取範圍的基本原理
Java 語言規格要求快取此範圍內的整數,因為這些值在常見場景中經常使用。例如,-128 表示最低的 8 位元有符號整數值,而 127 表示最高的。這些值經常在 byte、short 等資料類型中遇到。
透過快取這些值,Java 優化了效能。它確保將原始值轉換為物件的裝箱過程始終為快取範圍內的相同原始值傳回相同的物件參考。此行為簡化了比較,並減少了由於重複物件實例而導致意外相等性檢查的可能性。
自訂快取範圍
雖然預設快取範圍可以滿足許多人的需求應用程式中,某些場景可能需要快取額外的值。 -XX:AutoBoxCacheMax JVM 選項可讓您指定整數快取的最大大小。這提供了一種在快取中包含超出預設 -128 到 127 範圍的整數的方法。
需要注意的是,自訂快取大小是特定於實現的。某些 JVM 可能支援此選項,而其他 JVM 可能不支援。此外,使用較大的快取可能會導致效能下降,尤其是在較小的裝置上。因此,建議僅在有令人信服的理由時才調整快取大小。
以上是為什麼 Java 快取 -128 到 127 之間的整數,以及如何自訂此範圍?的詳細內容。更多資訊請關注PHP中文網其他相關文章!