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.

你可能感兴趣的:(秋招复习,java中装箱和拆箱,java)