auto box/unbox 是jdk5推出的新特性.简化代码的操作的,在基础数据类型和包装类之间的转换.
java 中 基础数据类型严格意义上说是一种特殊的对象,而我们平时操作的是普通的对象.
当你使用的方法,添加或获取的是一个普通的对象时候(包装类)就会自动装箱.反之就是拆箱,在算数符运算的时候也会发生.
这个特性虽然带来了一些便利,但是使用不恰当会有很大的性能损失,或者出现空指针异常(unbox).
所以我们在开发的时候,一定要考虑到能使用基础数据类型就使用基础数据类型.例如使用int[]而不是List.
11
自动拆箱可以说的东西还挺多,也有一些需要注意的地方。
首先讲一点,所谓拆箱,就是把包装类 Byte,Short,Character,Integer,Long,Float,Double,Boolean 转为基础类型 byte,short,char,int,long,float,double,boolean 。
而所谓的自动拆箱,就是自动将包装类转为基础类型。
先来个手动转换包装类到基础类型,代码如下:
int a=Integer.valueOf("12");
再来个自动拆箱,代码如下:
Integer a= 1;
int c = a + 2;
这时候,Integer a 会被自动拆箱为 int a。为什么要对 Integer 进行拆箱呢?因为 Integer 是对象,对象时无法进行加减乘除,只有基础数据类型可以。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。