由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。

    装箱:基本数据类型->包装类型 拆箱:包装类型->基本数据类型

    • 自动装箱底层调用的是valueOf方法,比如Interger.valueOf() ```java package test;

    public class Main { public static void main(String[] args) { //演示int <—> Integer 的装箱和拆箱 //jdk5前是手动装箱和拆箱 //手动装箱 int->Integer int n1 = 100; Integer integer = new Integer(n1);//手动装箱 Integer integer1 = Integer.valueOf(n1);//手动装箱

    1. //Integer -> int
    2. int i = integer.intValue();//手动拆箱
    3. //jdk5后,就可以自动装箱和自动拆箱
    4. int n2 = 200;
    5. //自动装箱 int->Integer
    6. Integer integer2 = n2; //底层使用的是 Integer.valueOf(n2)
    7. //自动拆箱 Integer->int
    8. int n3 = integer2; //底层仍然使用的是 intValue()方法
    9. }

    } ```