上級 › Integer の == が 127 までしか動かない理由 › パターン5
Integer の == が 127 までしか動かない理由
-128〜127のキャッシュが原因です。
1 public class Main { 2 public static void main(String[] args) { 3 Long a = 200L, b = 200L; 4 System.out.println(______________); ^ 5 } 6 }
出力: false期待: true (コンパイルは通っています)
空欄を埋めてビルドを通す
Long も Integer と同じく -128〜127 だけキャッシュされます。200は範囲外なので==は参照比較になり別実体としてfalseになります。
次の問題