Integer类的装箱和拆箱实现

 反编译:是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。

测试代码:

 1 public class BoxAndUnbox {
 2 
 3     /**
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         int value=100;
 8 
 9         Integer obj=value;  //装箱
10 
11         int result=obj*2;     //拆箱
12         System.out.println(obj);
13         System.out.println(result);
14 
15     }
16 
17 }

运行结果如下:

100

200

反编译如下:

 (非自己操作,电脑Java文件无法在cmd运行)

由此可见 在装箱的时候自动调用的是Integer的valueOf(int)方法。而在拆箱的时候自动调用的是Integer的intValue方法。

装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的 intValue方法实现。

猜你喜欢

转载自www.cnblogs.com/cxy0210/p/11685027.html