自动装箱与自动拆箱:
装箱:把基本数据类型包装成对象的包装类类型:int -> Integer
拆箱:把包装类对象抓换为对象基本类型的变量:Integer -> int
在Java的集合框架中,只能存储对象,不能存储基本类型的数值,
在Java5之前,就只能手动完成装箱:
手动装箱:Integer num1 = Integer.value(123);
手动拆箱:int num2 = num1.intValue();
自动装箱:直接可以把基本类型值赋值给对应的包装类对象
自动拆箱:把包装类对象直接赋值给对应的基本类型对象
测试代码:
public static void main(String[] args) {
Integer i1 = 1;
int i2 = i1;
}
反编译后的代码:
public static void main(String[] args)
{
Integer i1 = Integer.valueOf(1);
int i2 = i1.intValue();
}
结论:自动装箱和自动拆箱也是语法糖(反编译)。