Java有装箱和拆箱
把基本数据类型转换成包装类的过程就是打包装,英文对应于boxing,中文翻译为装箱。
反之,把包装类转换成基本数据类型的过程就是拆包装,英文对应于unboxing,中文翻译为拆箱。
自动装箱与拆箱
在Java SE5中,为了减少开发人员的工作,Java提供了自动拆箱与自动装箱功能。
自动装箱: 就是将基本数据类型自动转换成对应的包装类。
自动拆箱:就是将包装类自动转换成对应的基本数据类型。
Integer i =10; //自动装箱
int b= i; //自动拆箱
自动装箱和自动拆箱原理其实是使用valueOf()和xxValue() 方法实现
Interger i = Interger.valueOf(10);
int b = intValue(i);
经典案例
三目运算符如果操作数有对象会发生自动拆箱
boolean flag = true;
Integer i = 0;
int j = 1;
int k = flag ? i : j;
当i为null时,由于会自动拆箱导致报错空指针异常