Integer Wrapper Objects Share Instances Within the Range -128 to 127
特定の値の範囲内でインスタンスを共有する整数ラッパー オブジェクトの動作が発生しますJava 言語仕様 (JLS) から。 JLS 5.1.7 によれば、特定のプリミティブ値のボックス化変換は同一の参照を生成します。
true、false、byte、char (u0000 ~ u007f の範囲)、および -128 ~ 127 の int または short 数値の場合、これらの値から作成されたラッパー オブジェクトは常に同じになります。
この仕様により、望ましいものを確保しながら実用的な効率が可能になります。典型的なシナリオでの動作。特定の共通値をオブジェクトとしてキャッシュすると、ボックス化変換中のメモリのオーバーヘッドが軽減されます。ただし、実装では、指定された値のすべてをキャッシュするか、そのサブセットのみをキャッシュするかを決定できます。その範囲は、char 値と short 値、および int 値と long 値の場合は -32K から 32K です。
したがって、整数ラッパー オブジェクトは、同じインスタンスは -128 ~ 127 の値の範囲内でのみ使用されます。これは、メモリ効率と値の予測可能性のバランスをとることを目的として Java 言語の仕様によって規定されているためです。コンバージョン。
以上がJava の整数ラッパー オブジェクトが -128 ~ 127 の間のインスタンスのみを共有するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。