Java 设计当初就提供了 8 种 基本数据类型及对应的 8 种包装数据类型。我们知道 Java 是一种面向对象编程的高级语言,所以包装类型正是为了解决基本数据类型无法面向对象编程所提供的。
基本数据类型与对应的包装类型。(类名都是基本数据类型的首字母大写)
基本数据类型 | 包装类型 |
---|---|
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
包装类应用场景
1、集合类泛型只能是包装类;
// 编译报错
List<int> list1 = new ArrayList<>();
// 正常
List<Integer> list2 = new ArrayList<>();
2、成员变量不能有默认值;
private int a;
基本数据类型的成员变量都有默认值,如以上代码 a 默认值为 0,如果定义中 0 代表失败,那样就会有问题,这样只能使用包装类 Integer,它的默认值为 null,所以就不会有默认值影响。
自动装箱、拆箱
Java 1.5 增加了自动装箱、拆箱机制,提供基本数据类型和包装类型的相互转换操作。
自动装箱
自动装箱即自动的将基本数据类型转换成包装类型。
// 自动装箱
Integer i = 66;
自动拆箱
自动拆箱即自动将包装类型转换成基本数据类型。
Integer i = 66;
// 自动拆箱
int i2 = i;