1、什么叫自动装箱和拆箱?
自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱。因为这里的装箱和拆箱是自动进行的非人为转换,所以就称作为自动装箱和拆箱。原始类型byte,short,char,int,long,float,double和boolean对应的封装类为Byte,Short,Character,Integer,Long,Float,Double,Boolean。
2、何时发生自动装箱和拆箱
自动装箱和拆箱在Java中很常见,比如我们有一个方法,接受一个对象类型的参数,如果我们传递一个原始类型值,那么Java会自动讲这个原始类型值转换成与之对应的对象。最经典的一个场景就是当我们向ArrayList这样的容器中增加原始类型数据时或者是创建一个参数化的类。
3、自动封装的目的就是自动地将基础类型转化为它们的对象版本,这样你就不用操心你代码中的这些转化了。例如Integer value = 0当中,将整型的 0 自动的转化为 Integer 的对象。
4、为了避免 HashMap 的自动装箱行为,Android系统提供了 SparseBoolMap,SparseIntMap,SparseLongMap,LongSparseMap 等容器,可减少运行时间开支,减少内存使用。
网友评论