在Wrapper类的情况下,与==相关的查询

时间:2014-07-10 19:55:32

标签: java

我一直在玩包装类中的==。我遇到了一些奇怪的事情。

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关于分配给包装器的不同值的双重行为感到困惑。 为什么会这样呢?请分享你的想法。

由于

1 个答案:

答案 0 :(得分:0)

您需要使用!i1.equals(i2)