上級 › Integer の == が 127 までしか動かない理由 › パターン3
Integer の == が 127 までしか動かない理由
-128〜127のキャッシュが原因です。
1 public class Main { 2 public static void main(String[] args) { 3 Integer a = 1000; 4 int b = 1000; 5 System.out.println(a ________ b); ^ 6 } 7 }
出力: true(片方がintだと開封されて値比較になります)
空欄を埋めてビルドを通す
片側がプリミティブなら==は値の比較になります。両側がラッパーのときだけ参照比較になる点が混乱の元です。
次の問題