当前位置:编程学习 > JAVA >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,