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 为 -128
到 127
之间的值保留 本地缓存 。您也可以增加此范围。
案例一:
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 为 -128
到 127
之间的值保留 本地缓存 。您也可以增加此范围。