本帖最后由 赵玮_Tom 于 2012-5-11 17:33 编辑
自动装箱和拆箱是jdk1.5的新特性之一。
我们知道,java中有8中基本数据类型,这8中基本数据类型不同于引用数据类型,是不能作为对象使用的。然而,经常需要把这些基本数据类型当做对象来使用(如:集合中存储的元素数据类型要求必须是引用数据类型,不能存储int类型数据),就出现了装箱操作,简言之,就是把一种基本数据类型转为与其对应的引用数据类型(如:int转为Integer)。
另一方面,相对于引用数据类型,基本数据类型有方便运算的优势(Integer类型是不能实现“加减”等操作的)。所以,又出现了将某些引用数据类型转为对应基本数据类型的需求,即拆箱。
jdk1.5之前,装箱和拆箱动作都是由程序员写代码完成的,频繁装箱和拆箱十分复杂、繁琐。jdk1.5之后,这种装箱和拆箱动作由程序自主完成,省去了程序员的麻烦,即自动拆箱和装箱。这样我们可以实现下述代码:
ArrayList al = new ArrayList();
al.add(5);//自动装箱
Integer i1 = 6;//自动装箱
Integer i2 = 7;//自动装箱
int num = i1+i2;//自动拆箱
而像这些自动转换动作,在jdk1.5之前是无法自动实现的。 |