黑马程序员技术交流社区

标题: 自动拆箱、装箱问题 [打印本页]

作者: 公子-醉香    时间: 2013-12-15 11:51
标题: 自动拆箱、装箱问题
  1. public class AutoUnbox {
  2.         public static void main(String[] args) {
  3.                 // TODO Auto-generated method stub
  4.                 Integer data11=new Integer(10);//实现int类型转换对象
  5.                 Integer data12=new Integer(10);
  6.                 Integer data21=Integer.valueOf(10);
  7.                 Integer data22=Integer.valueOf(10);//实现int类型转换对象
  8.                 Integer data31=20;
  9.                 Integer data32=20;
  10.                 int sum1=data11+20;
  11.                 int sum2=data31+20;
  12.                 System.out.println("sum1的值为"+sum1);
  13.                 System.out.println("sum2的值为"+sum2);
  14.                 //问题:data11与data12是否为同一个对象?
  15.                 //      data21与data22是否为同一个对象?
  16.                 //      data31与data32是否为同一个对象?
  17.         }

  18. }
复制代码


作者: 丑男先生。    时间: 2013-12-15 12:31
记住它的感念就好了啦,本人不才,总结了下,只做参考,

所谓装箱,就是把基本类型用它们相对应的引用类型包起来,使它们可以具有对象的特质,如我们可以把int型包装成Integer类的对象,或者把double包装成Double,等等。

所谓拆箱,就是跟装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为值类型的数据

J2SE5.0后提供了自动装箱与拆箱的功能,此功能事实上是编译器来帮您的忙,编译器在编译时期依您所编写的方法,决定是否进行装箱或拆箱动作。

自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。

自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。

自动装箱,只需将该值赋给一个类型包装器引用,java会自动创建一个对象。例如:
Integer i=100;   //没有通过使用new来显示建立,java自动完成。


加上上面哥们的指例说明,希望对你有所帮助哈!
作者: ζ丶凡σ    时间: 2013-12-15 18:00
赞..........




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2