java 装箱和拆箱的基本操作:可以手动或自动

发布时间:2025-04-29      访问量:31
在 Java 里,装箱和拆箱是基本数据类型和对应的包装类之间进行相互转换的操作。下面是对它们的详细解释:

装箱
装箱是把基本数据类型转换为对应的包装类对象。例如,将`int`类型转换为`Integer`对象。装箱有手动和自动两种方式。

手动装箱示例:
java int num = 10; Integer integerObj = new Integer(num); // Java 9 及以后不推荐使用此构造函数 Integer integerObj2 = Integer.valueOf(num); // 推荐使用此方法

自动装箱示例:
java int num = 10; Integer integerObj = num; // 自动装箱

拆箱
拆箱是把包装类对象转换为对应的基本数据类型。同样,拆箱也有手动和自动两种方式。

手动拆箱示例:
java Integer integerObj = new Integer(10); int num = integerObj.intValue();

自动拆箱示例:
java Integer integerObj = new Integer(10); int num = integerObj; // 自动拆箱

完整示例代码
以下是一个完整的 Java 代码示例,展示了装箱和拆箱的操作:
java public class BoxingUnboxingExample { public static void main(String[] args) { // 装箱操作 int primitiveInt = 20; // 自动装箱 Integer boxedInt = primitiveInt; System.out.println("自动装箱后的结果: " + boxedInt); // 拆箱操作 Integer integerObject = new Integer(30); // 自动拆箱 int unboxedInt = integerObject; System.out.println("自动拆箱后的结果: " + unboxedInt); } }
在这个示例里,先是将`int`类型的变量`primitiveInt`自动装箱成`Integer`对象`boxedInt`,接着把`Integer`对象`integerObject`自动拆箱成`int`类型的变量`unboxedInt`。

注意事项
- **性能影响**:频繁的装箱和拆箱操作会对性能产生一定影响,因为每次装箱都会创建一个新的对象,而拆箱则需要进行类型检查。
- **空指针异常**:在进行拆箱操作时,如果包装类对象为`null`,会抛出`NullPointerException`异常。所以在进行拆箱操作前,要确保包装类对象不为`null`。
堆内存
多线程
strdup
初始化器
冒泡排序
增删改查
BufferedReader
输入输出
面向对象
生命周期
闭包的概念
原型链
Flask
mysql-connector-python
单例模式
浅拷贝
隔离级别
索引
InnoDB
左连接
聚合函数
PuTTY
TRUNCATE
str_starts_with_many
DateTime
array_combine
闭包的概念