ホームページ >Java >&#&チュートリアル >Java が -128 から 127 までの整数のみをキャッシュするのはなぜですか?

Java が -128 から 127 までの整数のみをキャッシュするのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-09 17:53:18413ブラウズ

Why Does Java Cache Integers Only Between -128 and 127?

なぜ -128 と 127 の間の値を整数でキャッシュするのですか?

前の質問に関して、Integer クラスは -128 と 127 の間の値をキャッシュすることが確認されました。これにより、なぜこの特定の範囲が設定されたのかという疑問が生じました。

Java 言語仕様 (JLS) では、-128 から 127 までの整数のキャッシュを義務付けています。その理由は、これらの値をボックス化すると常に同一の参照が得られ、一般的なケースでの区別がつかないことを保証することです。これにより、特にリソースに制約のあるデバイスで、過剰なメモリ オーバーヘッドを課すことなくパフォーマンスが向上します。

-128 から 127 までの値の頻繁な要求

範囲の選択は次のとおりです。これは、この範囲の整数が一般的に使用されるという仮定に起因します。主観が存在しますが、特定の要因がこの仮定を裏付ける可能性があります。

  • この範囲内の整数は、インデックス付けやカウントなどの多数のプログラミング シナリオで発生する小さな値を表します。
  • この範囲には次のものが含まれます。算術演算やビット単位の操作でよく使用される負の値と正の値。
  • -128 (-80h) および 127 (7Fh) は、最小および最大の 8 ビット符号付き整数を表し、低レベルのプログラミング コンテキストに関連する可能性があります。

範囲外の他の値をキャッシュする

JLS では -128 から 127 の範囲のキャッシュを義務付けていますが、ドキュメントでは他の値もキャッシュできる可能性があることを示唆しています。キャッシュされた。これは、-XX:AutoBoxCacheMax JVM オプションを使用して構成できます。これにより、開発者は、必須の範囲外のキャッシュ値の最大数を指定できるようになり、特定の範囲の整数に対する効率的なボックス化を必要とするアプリケーションに柔軟性が提供されます。

ただし、このオプションは実装固有であることに注意することが重要です。すべての JVM で利用できるわけではありません。

以上がJava が -128 から 127 までの整数のみをキャッシュするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。