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