什么是java自动装箱

Python014

什么是java自动装箱,第1张

装箱就是基本类型数据转化成对象类型,比如在 Java中int类型转化成Integer类型数据。java1.5之后引入自动装箱,这样数据类型的转化不用再代码中声明。

比如

List<Integer>list = new ArrayList<>()

int i = 1

list.add(i)

这样的代码在1.5之前就是错误的

Java包装类,Wrapper~由于在java中,数据类型总共可分为两大种,基本数据类型(值类型)和类类型(引用数据类型)。基本类型的数据不是对象,所以对于要将数据类型作为对象来使用的情况,java提供了相对应的包装类。对于8种数据类型的包装类分别是:

int---Integer

char---Character

float---Float

double---Double

byte---Byte

short---Short

long---Long

boolean--Boolean

所谓装箱,就是把基本类型用它们相对应的引用类型包起来,使它们可以具有对象的特质,如我们可以把int型包装成Integer类的对象,或者把double包装成Double,等等。

所谓拆箱,就是跟装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为值类型的数据

J2SE5.0后提供了自动装箱与拆箱的功能,此功能事实上是编译器来帮您的忙,编译器在编译时期依您所编写的方法,决定是否进行装箱或拆箱动作。

自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。

自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。

自动装箱,只需将该值赋给一个类型包装器引用,java会自动创建一个对象。例如:

Integer i=100 //没有通过使用new来显示建立,java自动完成。

自动拆箱,只需将该对象值赋给一个基本类型即可。

例如:

int j=i

int i = 10

Integer j =new Integer(i)//手动装箱操作

int k = j.intValue() //手动拆箱操作

int i = 11

Integer j = i//自动装箱

int k = j //自动拆箱