次のようなコードを見ました。
public class Scratch
{
public static void main(String[] args)
{
Integer a = 1000, b = 1000;
System.out.println(a == b);
Integer c = 100, d = 100;
System.out.println(c == d);
}
}
実行すると、このコード ブロックが出力されます。
false
true
最初の理由がわかりfalse
ました。2 つのオブジェクトが別々のオブジェクトであるため、==
参照が比較されます。しかし、私は理解できません.2番目のステートメントが返されるのはなぜtrue
ですか? 整数の値が特定の範囲にあるときに作動する奇妙なオートボクシング ルールはありますか? 何が起きてる?