楼上说的都不错,自动装箱与拆箱都是jdk1.5以后的新特性,我们知道新特性的出现无非是三点原因:
提高安全性,简化代码的书写,提高效率,对于自动装箱与拆箱当然就是为了简化书写了,如下面的代码语句
Integer x = new Integer(4);来new一个对象,我们同样可以写成Integer x = 4;当读到这条语句的时候他会自动为我们将左边的4“装箱”后赋给右边,这明显简化了代码的书写。
再比如下面两条语句:
Integer x = 4;//有自动装箱操作,就不多说了
x =x+2;
看第二条语句,我们知道x是一个对象,而2是一个整数,这里怎么就能进行相加操作呢?原因就是因为对左边的x进行了自动的拆箱操作,其原理是调用了Integer类中的intValue()方法,自动拆箱后就将int型的4与2相加后再自动装箱赋给右边的x(因为右边的x是对象)。
在这里还应注意一个情况,那就是x是对象了,它自然而然就多了一个值null(默认值)。
|