我一直在玩包装类中的==。我遇到了一些奇怪的事情。
Integer i1 = 3;
Integer i2 = 3;
if(i1 != i2)
{
System.out.println("i1 and i2 are not equal"); // if condition returns false in this case
}
就我的知识而言,这是完全正常的。
然而,如果我使用
实例化包装器Integer i1 = 1000;
Integer i2 = 1000;
if(i1 != i2)
{
System.out.println("i1 and i2 are not equal"); // if condition returns true in here
}
然后我对JVM关于分配给包装器的不同值的双重行为感到困惑。 为什么会这样呢?请分享你的想法。
由于
答案 0 :(得分:0)
您需要使用!i1.equals(i2)