Loading

自动装箱和拆箱

自动装箱拆箱要点:
  • 自动装箱时编译器调用valueOf将原始类型值转换成对象,同时自动拆箱时,编译器通过调用类似intValue(),doubleValue()这类的方法将对象转换成原始类型值。
  • 自动装箱是将boolean值转换成Boolean对象,byte值转换成Byte对象,char转换成Character对象,float值转换成Float对象,int转换成Integer,long转换成Long,short转换成Short,自动拆箱则是相反的操作。

 

 
1 //before autoboxing
2 Integer iObject = Integer.valueOf(3);
3 int iPrimitive = iObject.intValue()
4  
5 //after java5
6 Integer iObject = 3; //autobxing - primitive to wrapper conversion
7 int iPrimitive = iObject; //unboxing - object to primitive conversion

 

说个int和integer的区别,方便理解拆装箱。
int是基本数据类型之一,integer是复杂基本类型,也可以理解为class.
初始化int时初始为0,初始化integer时初始为null。
举个例子:当需要往ArrayList,HashMap中放东西时,像int,double这种内建类型是放不进去的,因为容器都是装 object的,这是就需要这些内建类型的外覆类了。
 
posted @ 2017-09-11 16:49  xpang0  阅读(261)  评论(0编辑  收藏  举报