Java:整数相等性检查

Java: Integer equality check

案例一:

Integer number = 128;
Integer number3 = 128;
System.out.println(number == number3);

案例二:

Integer number = 127;
Integer number3 = 127;
System.out.println(number == number3);

在这种情况下,如果值 > 127,则 returns 为假,但如果值 < 128,则为 returns 真。

有人可以解释为什么案例 1 returns 为假而案例 2 returns 为真吗?

发生这种情况是因为 Integer class 为 -128127 之间的值保留 本地缓存 。您也可以增加此范围。