Integer是int的封装对象,两个对象==比较的是栈的值
Integer i4 = new Integer(100);
Integer i5 = new Integer(100);
i4与i5存的是Integer的堆中的地址,而不是值
i4,i5指向堆中的地址显然不同所以i4==i5为false
int i1= 1oo; int为值类型,引用类型Integer与值类型int比较显然比较的是值
所以i1==i4比较的是他们各自的value, i1==i4为true
new 创建新的内存,直接赋值则不一定创建新的内存
因为i4的引用指向堆,而i2指向专门存放他的内存,所以他们的内存地址不一样
所以i2==i4为false
|