包装类型
为什么会存在包装类
因为java是个面向对象的语言,但是int这些数据类型是没法实例化的,所以需要一个包装类来修饰它,让它可以变成对象。
下面是基本类型和他对应的包装类
创建对象
在创建对象的时候,一般是使用new 来创建对象,但这样是会新建空间的,我们在包装类中可以使用valueOf(int)方法来创建对象,这样可以使用到缓存池,更高效
int i = 100;
Integer n1 = new integer(i); //没使用缓存池
Integer n2 = Integer.valueOf(i);
Integer n3 = Integer.valueOf("100");
system.out.println(n3.intValue());
自动装箱与自动拆箱
int 和 Integer是可以相互转换的,java编译器可以帮助我们自动在int 和Integer中进行类型转换
Integer n = 100; //自动装箱
int x = n; //自动拆箱
注意:自动拆装箱只在编译阶段,目的是减少代码量
当然,拆装箱会影响代码执行效率,因为可能出现Integer是null的情况,这时候在拆箱就会NullPointerRxception空指针。
缓存池
包装类在缓存池的范围: