比如
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 //自动拆箱