在Java中,基本数据类型(如int, double, char等)和它们对应的包装类(如Integer, Double, Character等)之间的转换是非常常见的操作。
这个过程可以通过自动装箱(Autoboxing)和自动拆箱(Auto-unboxing)来简化,这两个概念是Java 5引入的特性,旨在让代码更简洁,同时保持类型安全。
装箱(Autoboxing)
概念解释: 装箱,顾名思义,就是将基本数据类型“包裹”在一个对象中,即转换为相应的包装类对象。这个过程是自动完成的,不需要显式地调用包装类的构造方法。
当一个基本类型值需要放入到需要对象的地方时,如泛型集合、或者作为Object类型参数传递时,就会自动触发装箱操作。
代码示例:
1Integer num = 100; // 自动装箱:基本类型int值100被转换为Integer对象
在这段代码中,int
类型的字面量100被自动转换为Integer
对象并赋值给变量num
。编译器替我们做了Integer num = Integer.valueOf(100);
的工作。
拆箱(Auto-unboxing)
概念解释: 拆箱则是装箱的逆过程,即将包装类对象转换回基本数据类型。当需要将包装类对象用于基本数据类型的操作时,Java会自动进行拆箱操作,