由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。
装箱:基本数据类型->包装类型 拆箱:包装类型->基本数据类型
- 自动装箱底层调用的是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);//手动装箱
//Integer -> int
int i = integer.intValue();//手动拆箱
//jdk5后,就可以自动装箱和自动拆箱
int n2 = 200;
//自动装箱 int->Integer
Integer integer2 = n2; //底层使用的是 Integer.valueOf(n2)
//自动拆箱 Integer->int
int n3 = integer2; //底层仍然使用的是 intValue()方法
}
} ```