目录
包装类是什么
Java是面向对象的编程语言,但是Java中的八种基本数据类型却是不是面向对象的
实际开发过程中,经常会遇到需要使用对象,而不是内置数据类型的情况。为了解决这个问题,Java语言为内置数据类型提供了对应的包装类
包装类均为java.lang包中
基本数据类型 | 包装类 |
boolean | Boolean |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
包装类的作用
1、包装类增强了java面向对象的性质(统一成面向对象):在集合类中,无法使用int 、double等类型,因为集合的容器要求元素是Object类型,就可以使用对应的包装类
2、包装类还为基本类型添加了属性和方法,丰富了基本类型的操作
注:由于基本数据类型直接在栈内存中存储,不需要在堆中创建对象,因为更为高效
装箱&拆箱
把基本类对应的包装类称作为“对应的箱子”
装箱:从基本数据类型转换为对应的包装类对象
拆箱:从包装类对象转换为对应的基本数据类型
创建包装类对象有两种方式:new关键字、valueOf()方法
Integer integer1 = new Integer(8); //装箱:构造方法创建包装类对象
System.out.println(integer1); // 重写了toString方法
Integer integer2 = Integer.valueOf(8); //装箱: 静态方法创建包装类对象
System.out.println(integer2);
int i = integer1.intValue(); //拆箱:从包装类中取出基本类型的数据
自动装箱&自动拆箱
为了方便使用和性能优化,提供了自动拆装箱机制
自动装箱
系统自动将基本类型转换为对应的包装类型
//自动装箱
int a = 10;
Integer a1 = a; //int类自动装箱成Integer类
自动拆箱
系统自动将包装类型中的数据拆分成为对应的基本类型
//自动拆箱
Integer n = 5;
int n1 = n; //Integer类自动拆箱成int类