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值 |