なぜ -128 と 127 の間の値を整数でキャッシュするのですか?
前の質問に関して、Integer クラスは -128 と 127 の間の値をキャッシュすることが確認されました。これにより、なぜこの特定の範囲が設定されたのかという疑問が生じました。
Java 言語仕様 (JLS) では、-128 から 127 までの整数のキャッシュを義務付けています。その理由は、これらの値をボックス化すると常に同一の参照が得られ、一般的なケースでの区別がつかないことを保証することです。これにより、特にリソースに制約のあるデバイスで、過剰なメモリ オーバーヘッドを課すことなくパフォーマンスが向上します。
-128 から 127 までの値の頻繁な要求
範囲の選択は次のとおりです。これは、この範囲の整数が一般的に使用されるという仮定に起因します。主観が存在しますが、特定の要因がこの仮定を裏付ける可能性があります。
範囲外の他の値をキャッシュする
JLS では -128 から 127 の範囲のキャッシュを義務付けていますが、ドキュメントでは他の値もキャッシュできる可能性があることを示唆しています。キャッシュされた。これは、-XX:AutoBoxCacheMax JVM オプションを使用して構成できます。これにより、開発者は、必須の範囲外のキャッシュ値の最大数を指定できるようになり、特定の範囲の整数に対する効率的なボックス化を必要とするアプリケーションに柔軟性が提供されます。
ただし、このオプションは実装固有であることに注意することが重要です。すべての JVM で利用できるわけではありません。
以上がJava が -128 から 127 までの整数のみをキャッシュするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。