【Java专题】包装类型
每个基础数据类型都有一个对应的包装类型,包装类型的本质是一个内置的对象。
类型对应关系
| 基本数据类型 | 包装类型 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
Java中的包装类(Wrapper Classes)对基本数据类型进行了封装,使其也具有了对象的特性,可以调用方法和进行类型转换等操作。
区别
- 存储方式:基本类型直接存储值,而包装类型存储的是对应基本类型值的对象
- 空值处理:基本类型没有空值(null)的概念,而包装类型可以将null作为有效值来表示缺失或无效值
- 默认值:基本类型有默认值,例如int类型的默认值是0,boolean类型的默认值是false。而包装类型的默认值是null
- 对象操作:基本类型不能直接调用方法,而包装类型可以调用对应的方法,例如Integer类的intValue()方法可以获取保存在Integer对象中的值
- 自动装箱/拆箱:基本类型和包装类型之间可以进行自动装箱和拆箱的转换。
- 泛型支持:泛型只能使用引用类型,不能直接使用基本类型。因此,当需要在泛型中使用基本类型时,需要使用对应的包装类型
- 比较方式:基本类型使用==进行比较时,比较的是值是否相等。而包装类型使用==进行比较时,比较的是引用是否指向同一个对象,而不是比较值是否相等。若要比较包装类型的值是否相等,需要使用equals()方法
自动装箱是指将基本类型的值自动转换为对应的包装类型对象,如int 转Integer,Integer integer = 100,底层调用了Interger.valueOf(100)方法
自动拆箱则是将包装类型对象自动转换为基本类型的值
代码示例
1 | public class TestWrapperClass { |