次のコードの実行結果として正しいものはどれですか? Integer a = 128; Integer b = 128; System.out.println(a == b);
クイズ
次のコードの実行結果として正しいものはどれですか? Integer a = 128; Integer b = 128; System.out.println(a == b);
IntegerオブジェクトへのオートボクシングはInteger.valueOfを使い、-128から127の範囲はキャッシュされた同一オブジェクトが返されます。128はこの範囲外のため、a と b は別々のオブジェクトになり、参照を比較する==ではfalseとなります。ラッパークラスの値を比較するときは、equalsメソッドを使うのが安全です。