一、什么是装箱?什么是拆箱?
要讨论装箱拆箱就是先说基本类型及其对应的包装器类型:
//在Java SE5以前生成1的Integer对象,需要用构造方法
Integer i =new Integer(1);
//现在有自动装箱功能
Integer i=1;//会自动生成Integer对象,这就是装箱
//拆箱是将包装器类型转换为基本数据类型
Integer i=1;//装箱
int n=i;//拆箱
/**
* int-Integert byte-Byte short-Short
* long-Long float-Float double-Double
* char-Char boolean-Boolean
*/
二、装箱和拆箱是如何实现的
测试一下
public class Test{
public static void main(String[] args){
Integer i=1;
int n=i;
}
}
//javac Test.java
//javap -c Test
这里可以看到咱们代码是先进行了装箱,而后台调用了Integer.valueOf(int );而拆箱时调用了Integer.intValue();
同时也可以知道了其他的装箱与拆箱的方法xxx.valueOf
xxxValue()