自动装箱与拆箱概念
比如
Integer i = 10;
这个过程中会自动根据数值创建对应的 Integer对象,这就是装箱。
而
int j = i;
自动将包装器类型转换为基本数据类型;这个就是拆箱。
装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。
作用的机制
比如这段代码
public class Test {
public static void main(String[] args) {
Integer i = 10;
int j = i;
}
}
在控制台输入javap -c Test
就可以看到
Integer i = 10;
执行上面那句代码的时候,系统为我们执行了:
Integer i = Integer.valueOf(10);
int j = i;
执行上面那句代码的时候,系统为我们执行了:
int j = i.intValue();
装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的 xxxValue方法实现的。