上級 › Integer の == が 127 までしか動かない理由 › パターン2
Integer の == が 127 までしか動かない理由
-128〜127のキャッシュが原因です。
1 public class Main { 2 public static void main(String[] args) { 3 Integer a = 100, b = 100; 4 System.out.println(a __ b); ^ 5 } 6 }
出力: true(127以下なのでたまたま通ります。128にすると false になります)
空欄を埋めてビルドを通す
たまたま動く挙動に依存するのが最も危険です。ラッパー型の比較は常にequalsを使います。
次の問題