Java 自动装箱与拆箱
提示
- 自动装箱的定义:Java自动装箱是基本类型自动转换为相应的包装类对象的过程,如
int
转换为Integer
。 - 自动装箱的应用:自动装箱在使用Java集合如
ArrayList
时特别有用,允许直接存储基本类型值。 - 自动拆箱的概念:Java自动拆箱是包装类对象自动转换回相应基本类型的过程,例如
Integer
转换为int
。
Java 自动装箱 - 基本类型到包装类对象
在 自动装箱 中,Java 编译器会自动将基本类型转换为相应的包装类对象。例如,
int a = 56;
// 自动装箱
Integer aObj = a;
自动装箱 在使用 Java 集合时有很大的优势。
示例 1:Java 自动装箱
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
// 自动装箱
list.add(5);
list.add(6);
System.out.println("ArrayList: " + list);
}
}
输出
ArrayList: [5, 6]
在上面的示例中,我们创建了一个 Integer 类型的数组列表。因此,该数组列表只能容纳 Integer
类型的对象。
注意这一行,
list.add(5);
这里,我们传递了基本类型的值。然而,由于 自动装箱,基本值被自动转换为 Integer
对象并存储在数组列表中。
Java 拆箱 - 包装类对象到基本类型
在 拆箱 中,Java 编译器会自动将包装类对象转换为相应的基本类型。例如,
// 自动装箱
Integer aObj = 56;
// 拆箱
int a = aObj;
与 自动装箱 类似,拆箱 也可以与 Java 集合一起使用。
示例 2:Java 拆箱
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
// 自动装箱
list.add(5);
list.add(6);
System.out.println("ArrayList: " + list);
// 拆箱
int a = list.get(0);
System.out.println("索引 0 处的值: " + a);
}
}
输出
ArrayList: [5, 6]
索引 0 处的值: 5
在上面的示例中,请注意这一行,
int a = list.get(0);
这里,get()
方法返回索引 0
处的对象。然而,由于 拆箱,对象自动转换为基本类型 int
并赋值给变量 a
。