🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Java 自动装箱和拆箱 > 原文: [https://www.programiz.com/java-programming/autoboxing-unboxing](https://www.programiz.com/java-programming/autoboxing-unboxing) #### 在本教程中,我们将借助示例学习 Java 自动装箱和拆箱。 ## Java 自动装箱 - 原始类型到包装器对象 在**自动装箱**中,Java 编译器自动将原始类型转换为它们对应的包装器类对象。 例如, ```java int a = 56; // autoboxing Integer aObj = a; ``` **自动装箱**在使用 Java 集合时具有很大的优势。 * * * ### 示例 1:Java 自动装箱 ```java import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); //autoboxing list.add(5); list.add(6); System.out.println("ArrayList: " + list); } } ``` **输出** ```java ArrayList: [5, 6] ``` 在上面的示例中,我们创建了一个`Integer`类型的`ArrayList`。 因此,`ArrayList`只能容纳`Integer`类型的对象。 注意这一行, ```java list.add(5); ``` 在这里,我们传递原始类型值。 但是,由于**自动装箱**,原始值会自动转换为`Integer`对象并存储在`ArrayList`中。 * * * ## Java 拆箱 - 包装器对象到原始类型 在**拆箱**中,Java 编译器会自动将包装器类对象转换为其相应的原始类型。 例如, ```java // autoboxing Integer aObj = 56; // unboxing int a = aObj; ``` 像**自动装箱**一样,**拆箱**也可以与 Java 集合一起使用。 * * * ### 示例 2:Java 拆箱 ```java import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); //autoboxing list.add(5); list.add(6); System.out.println("ArrayList: " + list); // unboxing int a = list.get(0); System.out.println("Value at index 0: " + a); } } ``` **输出**: ```java ArrayList: [5, 6] Value at index 0: 5 ``` 在上面的示例中,请注意以下行: ```java int a = list.get(0); ``` 此处,`get()`方法返回索引为`0`的对象。 但是,由于**取消装箱**,该对象会自动转换为原始类型`int`并分配给变量`a`。