Java基本数据类型包装类
-
包装类是什么?
可以让基本数据类型获取跟对象一样的属性和特征,行使对象的相关权益,每一种基本数据类型都有对应的包装类型,方便对基本类型进行操作。
-
基本数据类型及其对应的包装类:
基本类型 包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean -
包装类使用场景:
包装类型可以解决一些基本类型解决不了的问题,如有时候方法传参需要传递一个Object变量,而我们想传递int类型的进去显然不行;再比如集合不允许存放基本数据类型,这些时候就要用到包装类。
-
装箱,把基本数据类型转换成包装类:
-
自动装箱,不用实例化,直接赋值。
int i1 = 2; Integer i2 = i1;
-
手动装箱,实例化对象。
int i1 = 2; Integer i2 = new Integer(i1);
-
-
拆箱,把包装类转换成基本数据类型:
-
自动拆箱,不调用包装类方法,直接赋值。
Integer i1 = 2; int i2 = i1;
-
手动拆箱,调用包装类方法获取返回值。
Integer i1 = 2; int i2 = i1.intValue();
-
-
深入了解自动拆装箱,我们直接给包装类赋值实现自动装箱,实际上编译器是做了这些工作:
- 调用valueOf(),Java为了提高效率,在这个方法执行过程中提供了对象池,如果参数在-128 ~ 127之间就可以装进这个对象池。
- 当给包装类赋值时,它会在对象池里先查找是否存在这样的一个对象,如果有,就会从对象池里直接产生,让现在这个对象也指向这个内存空间,如果没有,就会隐式地调用new关键字来实例化一个对象。
可以使用对象池的包装类: