為什麼 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中文網其他相關文章!