ホームページ > Java > &#&チュートリアル > Java で `c == d` が `Integer c = 100` および `Integer d = 100` に対して `true` を返すのはなぜですか?

Java で `c == d` が `Integer c = 100` および `Integer d = 100` に対して `true` を返すのはなぜですか?

DDD
リリース: 2024-12-08 00:43:16
オリジナル
853 人が閲覧しました

Why does `c == d` return `true` for `Integer c = 100` and `Integer d = 100` in Java?

Java での整数キャッシュ

Query:

Java で、比較 c == d が true と評価されるのはなぜですか別個の Integer オブジェクトであるにもかかわらず (c = 100 および d = 100)?

応答:

パフォーマンスとメモリ使用率を向上させるために、Java は -128 から 127 の範囲内の整数オブジェクトのキャッシュを採用します。その結果、c とd は、同じキャッシュされたインスタンスを参照します。

の目的最適化:

  • メモリ節約: 共通の整数値をキャッシュすることにより、Java は個別の値ごとに個別のオブジェクトを作成する場合と比較して、大幅なメモリ領域を節約します。
  • キャッシュ効率: 頻繁に使用される整数値をキャッシュすると、キャッシュのパフォーマンスが向上します。キャッシュミスを最小限に抑えます。

利点:

  • パフォーマンスの向上: メモリ消費量の削減とキャッシュ効率の向上により、コードが高速化されます。
  • 最適化されたメモリ使用率: 整数をキャッシュすると、他のアプリケーション用に貴重なメモリ リソースが解放されます。

研究

次の参考文献は、このトピックについてのさらなる洞察を提供します。

  • [Java プラットフォーム SE 8 言語]仕様](https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.1.7)
  • [オートボクシング チュートリアル](https:// docs.oracle.com/javase/tutorial/java/data/autoboxing.html)

以上がJava で `c == d` が `Integer c = 100` および `Integer d = 100` に対して `true` を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート