Java自动装箱踩坑

2019-08-24  本文已影响0人  小鱼东西

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时,由于会自动拆箱导致报错空指针异常

上一篇下一篇

猜你喜欢

热点阅读