1、为什么需要包装器类?
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便。例如,我们有时候需要将int这种基本类型转换为对象类型的,所有的基本类型都有一个与之对应的类,我们把它们叫包装器类。
2、Java中常见的包装器类?
基本数据类型 | 包装类 |
---|---|
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
注意:
- String不属于包装类,在Java中,包装类是针对基本数据类型的,引用类型没有包装类。
- 由于每个值分别包装在对象里,所以ArraysList的效率比使用数组进行操作要低很多。
3、自动装箱和自动拆箱
为了理解自动装箱,我们定义一个ArrayList:
ArraysList list = new ArraysList<>();
自动装箱:
如果调用 List.add(3); 语句,将自动转换为list.add(Integer.valueof(3));
也就是说,自动装箱将自动把int类型数据包装成Integer类型。
自动拆箱:
相反,将一个Integer类型的值赋给一个int类型的变量时,将会自动拆箱。
这种自动装箱和自动拆箱在运算符中也会存在。
注意:
可以将一个基本数据类型打包成不同的包装器类
例如,可以将int类型包装成Integer,也可以包装成Double,还可以打包成String类型。