JAVA中装箱和拆箱的理解

装箱用于在垃圾回收堆中存储值类型,装箱是值类型到 object 类型或到此值类型所实现的任何接口类型的隐式转换。

通过调用包装器类valueOf方法实现的。

例:int 装箱的时候会自动调用Integer的valueOf(int)方法

拆箱:从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。

通过调用包装器类xxx.value方法实现的,xxx代表对应的基本数据类型。

例:Integer拆箱的时候会自动调用Integer的intValue方法。

注意:

Integer  integer100=null;

 int    int100=integer100;

解析:能通过编译但运行时会抛出空指针异常。integer100为Integer类型的对象,可以指向null,但第二行就会对integer100进行拆箱,也就是对一个null对象执行intValue()方法。所以,在拆箱的过程中特别注意封装类对象是否为空。

 

 

面试题:

Integer  a=128;

Integer  b=128;

System.out.println(a==b);

解析:超过Integer的范围,创建两个新对象,结果返回false.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值