黑马程序员技术交流社区

标题: java基础加强知识--怎么理解拆箱与装箱 [打印本页]

作者: 途遥子若    时间: 2013-12-16 19:27
标题: java基础加强知识--怎么理解拆箱与装箱
mainMethod.invoke(null,new  object[] { new String []{"111","222","333"}})

作者: jing迪    时间: 2013-12-16 20:47
要理解装箱和拆箱的概念,就要理解Java数据类型

装箱:把基本类型用它们相应的引用类型包装起来,使其具有对象的性质。int包装成Integer、float包装成Float

拆箱:和装箱相反,将引用类型的对象简化成值类型的数据

Integer a = 100;     这是自动装箱  (编译器调用的是static Integer valueOf(int i))
int     b = new Integer(100); 这是自动拆箱
作者: wowo6288    时间: 2013-12-16 21:07
Java自动装箱和自动拆箱定义
       J2SE 5.0推出了自动装箱和拆箱的功能,以下是它们的定义:
       自动装箱:把基本类型用它们相对应的引用类型包装起来,使它们可以具有对象的特质,可以调用toString()、hashCode()、getClass()、equals()等等方法。
       自动拆箱:跟装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为基本类型的数据。
       自动装箱和自动拆箱其实是由编译器来完成的,编译器会在编译时期根据你所写的语法决定是否进行装箱和拆箱动作。
自动装箱
       Integer a=3;//这是自动装箱
       其实编译器调用的是static Integer valueOf(int i)这个方法,valueOf(inti)返回一个表示指定的int值的Integer对象,那么就变成这样:
       Integer a=3;   =>    Integer a=Integer.valueOf(3);
自动拆箱
       int i = new Integer(2);//这是自动拆箱
       编译器内部自动调用  int intValue()返回该Integer对象的int值




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