为什么即使值为2的整数变量相同,Integer类也会返回false。 仅当值大于127时才会发生这种情况。
Integer a = 300;
Integer b = 300;
System.out.println(a==b);
以上代码打印为false。变量a和b的值相同,那么为什么这会打印为false。
Integer a = 127;
Integer b = 127;
System.out.println(a==b);
此代码将打印为true。 任何人都可以解释一下为什么java表现得像这样。
谢谢
答案 0 :(得分:3)
这是因为在微观层面上出于性能原因缓存127以下的值并使用相同的存储位置。这是true
在第二种情况下的原因。