一.什么是装箱?什么是拆箱?
将一个值封装起来就是装箱,就是将一个基本类型转换为一个封装类。否则就是拆箱。
而在从Java SE5开始就提供了自动装箱的特性。
二.自动如何实现
来一个小栗子:
public class Main {
public static void main(String[] args) {
Integer i = 10;
int n = i;
}
}
反编译class得到:
装箱的时候自动调用的是Integer的valueOf(int)方法。而在拆箱的时候自动调用的是Integer的intValue方法。
装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的 xxxValue方法实现的。(xxx代表对应的基本数据类型)。