自动装箱:java编译器自动的把 基本数据类型 转换为 包装类
自动拆箱:java编译器自动的把 包装类 转换为 基本数据类型 (注意:java从jdk1.5开始才支持自动拆装箱!!)
ex:
public class Demo{
public static void main(String[] args) {
/*
* 直接把int赋值给Integer : 把 基本数据类型 直接赋值给 引用类型,不会报错
* 原因:
* java自动的把基本数据类型 转换成了 包装类
* 使用 Integer valueOf(int i)做的转换
* 这个自动转换的过程 ==》 自动装箱
*/
Integer i1 = 6;//相当于:Integer i1 = Integer.valueOf(6);
Integer i2 = new Integer(666);
/*
* 直接把Integer赋值给int : 把 包装类 直接赋值给 基本数据类型,不会报错
* 原因:
* java自动的把包装类 转换成了 基本数据类型
* 使用的是int intValue()方法做的转换
* 这个自动转换的过程 ==》 自动拆箱
*/
int i = i2;//相当于:int i = i2.intValue();
}
}
辅助理解 ==》 在这里我们可以通过java的反编译器查看我们的javac编译的Demo.class字节码文件内容 :
在这个Demo里面
自动装箱:隐式的将int类型转换为Integer
自动拆箱:隐式的将Integer类型转换为int类型