黑马程序员技术交流社区

标题: Integer基本数据类型包装类问题 [打印本页]

作者: kfcka    时间: 2015-2-13 20:22
标题: Integer基本数据类型包装类问题
Integer x=4;
x=x+2;
sop(x);
说明其运行过程?

作者: 艺多不压身丶    时间: 2015-2-14 23:22
Integer x=4;     自动装箱
x=x+2;             自动拆箱,自动装箱
作者: huangchunwei    时间: 2015-2-14 23:31
如果需要用基本类型进行运算,则会自动拆箱(把包装类拆箱成其基本类型进行运算)。如果需要对对象进行操作,则会自动装箱(把基本类型数据装箱成其包装类)。
作者: 枪杆不如笔杆    时间: 2015-2-15 09:08
一楼正解,Integer是讲int数据类型装箱成一个对象
作者: rehan    时间: 2015-2-15 09:32
简单,先将4装箱,再将2装箱,然后再将x拆箱,然后打印出x的数值。。。。
作者: 蒋文辉    时间: 2015-2-15 17:02

Integer x=4   相当于new Integer(4);  到1.5版本以后可以自动装箱,
x=x+2 就相当于x=new Integer(x.intValue()+6)       x.intValue()(拆箱),就是将x先拆箱再装箱的步骤
作者: lwj123    时间: 2015-2-15 19:34
反编译后是这样的:
Integer i = 4;等价于Integer i = Integer.valueOf(4);这是自动装箱的过程
x=x+2;等价于x = x.intValue()+4:这是自动拆箱的过程
Integer x = 4;并不是调用new Integer(4);楼上好像错了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2