自动装箱是指将基本类型变量自动转换为其对应的包装器类对象。当原始值是-时,编译器会自动处理转换-
作为参数传递给需要包装类对象的函数。
分配给包装类类型的变量。
请看以下示例。
import java.util.ArrayList; import java.util.List; public class Tester { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); for(int i = 0; i< 10; i++){ //通过传递作为参数的自动装箱 //将int值转换为Integer- //由编译器在编译过程中 list.add(i); } System.out.println(list); char c = 'a'; //通过将char分配给Character对象来自动装箱 Character ch = c; System.out.println(ch); } }
输出结果
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] a
取消装箱与自动装箱相反,它指的是将包装对象自动转换为其对应的原始变量。当包装对象为-时,编译器会自动处理转换-
作为参数传递给需要原始数据类型变量的函数。
分配给原始数据类型变量类型的变量。
请看以下示例。
public class Tester { public static void main(String[] args) { Integer integer = new Integer(-10); //通过传递作为参数的自动装箱 //整数对象转换为int- //由编译器在编译过程中 int i = abs(integer); System.out.println(i); //通过将Integer对象分配给int变量来进行自动装箱 int j = integer; System.out.println(j); } private static int abs(int i){ return (i < 0)? -i: i; } }
输出结果
10 -10