易百教程

219、什么是自动装箱和拆箱? 什么时候发生?

自动装箱是将原始数据类型转换为相应的包装类对象的过程,例如,将 int 转换为 Integer。 拆箱是将包装类对象转换为原始数据类型的过程。 例如,Integerint。 拆箱和自动装箱在 Java 中自动发生。 但是可以使用 valueOf()xxxValue() 等方法从外部将一个转换为另一个。
每当需要包装类对象并提供原始数据类型时,它都可能发生,反之亦然。

  • 将原始类型添加到集合中,如 Java 中的 ArrayList。
  • 创建参数化类的实例,例如期望 Type 的 ThreadLocal。
  • 每当需要一个对象并且在方法调用中提供另一个对象时,Java 都会自动将其转换为对象。
  • 将原始类型分配给对象类型时。