WRAPPER OBJECT COMPARISION

时间:2015-06-02 04:52:25

标签: compare wrapper boxing

我对以下代码段感到困惑。

    Integer i1 = 1000;
    Integer i2 = 1000;
    if(i1 != i2) System.out.println("i1 and i2 are different objects");
    if(i1.equals(i2)) System.out.println("meaningfully equal");

    Integer i3 = 10;
    Integer i4 = 10;
    if(i3 == i4) System.out.println("i3 and i4 Same object");
    if(i3.equals(i4)) System.out.println("meaningfully equal");

输出是:

i1和i2是不同的对象

有意义地等于

i3和i4相同的对象

有意义地等于

我的问题是为什么i1和i2显示为i3和i4不同的不同对象。

1 个答案:

答案 0 :(得分:0)

知道了。我没注意到范围

为了节省内存,

的两个实例

以下包装器对象(通过装箱创建)在

时始终为==

原始值是相同的:

■布尔

■字节

■从\ u0000到\ u007f的字符(7f为十进制127)

■-128到127之间的短整数