Java中的自动装箱与拆箱,其实描述的是,从基本数据类型转换为包装类和从包装类转换为基本数据类型的动作。
例如,自动装箱:
//自动装箱
Integer i = new Integer(10);//正常创建Integer对象,并且初始化
Integer i = 10;//自动将int类型转换为Integer对象。正常基本数据类型赋值给对象将会报错。
自动拆箱:
//自动拆箱
//相当于int a = i.intValue();
Integer i = 10;
int a = i;//直接将Integer对象复制给Int类型,自动转换类型即为自动拆箱。
自动拆箱与自动装箱:
Integer i = 10;
Integer i2 = 20;
Integer i3 = i + 30;
/*
相当于,先进行i,i2自动装箱操作,然后再对i,i2进行自动拆箱操作转换为int类型进行求和,再将
结果自动装箱复制给i3。
Integer i3 = new Integer(i.intValue() + i2.intValue());
*/
//应用场景
ArrayList list = new ArrayList();
list.add(1);//自动装箱,list.add(Integer(1))
//集合是用来存储对象,存储基本数据类型的时候也使用了自动装箱功能。
所以说自动装箱与拆箱,是Java虚拟机自动帮我们进行的包装类与基本数据类型之间的转换。