在Java中,自动装箱和拆箱是十分重要的特性,允许基本数据类型(如int
)和它们对应的包装类(如Integer
)之间的转换。
-
自动装箱(Autoboxing):把基本数据类型转换成对应的对象类型。例如,将一个
int
转换成Integer
。
int primitiveInt = 5;
Integer boxedInt = primitiveInt; // 自动装箱
2.自动拆箱(Unboxing):把对象类型转换回基本数据类型。例如,将一个Integer
转换成int
。
Integer boxedInt = new Integer(5);
int primitiveInt = boxedInt; // 自动拆箱
在自动拆箱操作中,会调用Integer.intValue()
方法,以便从Integer
对象提取出基本的int
值,这个过程在编译时是自动处理的。
同理,对于Long、Float、Double也是编译器默认调用了取值函数,如果业务传的是NULL就会报空指针异常。