自动拆装箱是指包装类数据和它对应的基本类型的数据之间自动转化,是一个数据转化的形象比喻。拿Integer和它对应的基本类型int举例说明:
JDK1.5之前,要把int型数据转换成Integer类型数据的话需要借助特定方法,比如:
(1)
int num = 10;
Integer in = new Integer(num);(或者Integer in = Integer.valueOf(num);等)这就是装箱:int-->Integer。
同样,要把Integer类型数据转化为int类型,要借助方法parseInt()等。比如,
(2)
Integer in2 = Integer.valueOf("123");
int num2 = Integer.parse(in2);这是拆箱:Integer-->int.
JDK1.5之后它俩之间的转化不用这么麻烦:
Integer in = 10;就等价于(1)下面的那两句代码。因为等号右面的10默认是int型,以往(JDK1.5前)这样直接给Integer赋值int类型数据是不行的,现在可以直接赋值了,不用上面提到的转化(也就是装箱)了,"装箱"这个动作有虚拟机自动完成,这就是自动装箱的来历,自动拆箱和这个相反,就是(2)的变体,我不多说了,不知这样解释你明白吗? |