Java 自动装箱与自动拆箱

Java 中的每一种原始数据类型都有其对应的引用类型:boolean、byte、char、double、float、int、long 和 short 分别对应着 Boolean、Byte、Character、Double、Float、Integer、Long 和 Short。

在处理赋值语句、方法的参数和算术或逻辑表达式时,Java 会自动转换原始数据类型和对应的引用类型。自动将原始数据类型转换为引用类型称为自动装箱,自动将引用类型转换为原始数据类型称为自动拆箱。

Integer i = 1; // 自动装箱 (int -> Integer)
int j = i;     // 自动拆箱 (Integer -> int)

自动装箱与自动拆箱相当程度上是为泛型提供服务的。在泛型中,类型参数必须被实例化为引用类型,自动装箱和自动拆箱使泛型代码处理原始数据类型变得很方便。

Stack<Integer> stack = new Stack<Integer>();
stack.push(17);      // 自动装箱 (int -> Integer)
int i = stack.pop(); // 自动拆箱 (Integer -> int)

总结自《算法(第四版)》1.3 节

posted @ 2022-01-29 13:27  Higurashi-kagome  阅读(59)  评论(0编辑  收藏  举报