Integer对象包装类的新特性,有个疑问
class IntegerDemo2{
public static void main(String[] args){
//Integer x = new Integer(4);
Integer x = 4; //自动装箱,4是一个对象,相当于 new Integer(4)
x = x + 2; //x+2: x进行了自动拆箱,变成了int类型,和2进行加法运算,再将和进行装箱赋给x。
//自动拆箱:x.intValue();
}
public static void sop(Object obj){
System.out.println(obj);
}
}
上面代码中,
Integer x = 4;
x = x + 2; 之后,内存中是不是存在了两个Integer对象?
因为,x+2 后是不是多了个值为6的Integer对象? 然后把这个新对象的地址值赋给了x,原来值为4的Integer对象就没被引用了?
还是说原来值为4的Integer对象的内容变成了6,而自始至终还是只有这一个对象? java 对象包装类 Integer --------------------编程问答-------------------- 拆箱后相加,X不是原来的Integer了。内存中有新的地址存放相加后的值!
你可以看看这个:http://blog.csdn.net/zhuxiangdong/article/details/6868005
public static void main(String[] args){
//Integer x = new Integer(4);
Integer x = 4; //自动装箱,4是一个对象,相当于 new Integer(4)
Integer y=4;
System.out.println("x=y?:"+(x==y));
x = x + 2; //x+2: x进行了自动拆箱,变成了int类型,和2进行加法运算,再将和进行装箱赋给x。
//自动拆箱:x.intValue();
System.out.println("after add x=y?:"+(x==y));
}
补充:Java , Java SE