java编程中自动拆箱与自动装箱详解-创新互联

什么是自动装箱拆箱

创新互联专注于望谟企业网站建设,响应式网站,成都商城网站开发。望谟网站建设公司,为望谟等地区提供建站服务。全流程按需网站开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。


一般我们要创建一个类的对象实例的时候,我们会这样:


 Class a = new Class(parameter);


 当我们创建一个Integer对象时,却可以这样:


 Integer i = 100; (注意:不是 int i = 100; )


实际上,执行上面那句代码的时候,系统为我们执行了:Integer i = Integer.valueOf(100); (感谢@黑面馒头 和 @MayDayIT 的提醒)


此即基本数据类型的自动装箱功能。


简单一点说,装箱就是  自动将基本数据类型转换为包装器类型;拆箱就是  自动将包装器类型转换为基本数据类型。


下表是基本数据类型对应的包装器类型:

int(4字节) Integer
byte(1字节) Byte
short(2字节) Short
long(8字节) Long
float(4字节) Float
double(8字节) Double
char(2字节) Character
boolean(未定) Boolean

基本数据类型与对象的差别


基本数据类型不是对象,也就是使用int、double、boolean等定义的变量、常量。


基本数据类型没有可调用的方法。


eg:  int t = 1;     t.  后面是没有方法滴。


 Integer t =1; t.  后面就有很多方法可让你调用了。


什么时候自动装箱


例如:Integer i = 100;


相当于编译器自动为您作以下的语法编译:Integer i = Integer.valueOf(100);


什么时候自动拆箱


  自动拆箱(unboxing),也就是将对象中的基本数据从对象中自动取出。如下可实现自动拆箱:

Integer i = 10; //装箱 
int t = i; //拆箱,实际上执行了 int t = i.intValue();

文章标题:java编程中自动拆箱与自动装箱详解-创新互联
网站URL:http://pwwzsj.com/article/jssch.html