本帖最后由 路易斯威登吕 于 2012-9-3 11:09 编辑
如示例所示:
Integer i1 = 40;
Integer i2 = 40;
Integer i3 = 0;
定义i1,i2,i3等于常量,完成后直接存在于栈内存中,所以i1=i2 true ,i1=i2+i3 true
i4,i5,i6为引用数据类型,定义后,i4指向new Integer(40)的内存地址,i5i6也都是指向的一个内存地址,
由于内存地址的唯一性,所以i4=i5 false,但是i5+i6 结果是对应堆内存两个值相加的结果即40;i4=i5+i6相当于i4=40是正确的,楼主可以加一句:System.out.println("i4=i5+i6=40\t" + (i4 == 40)); 以证明结果的正确性。
|
|