Java 包装类:基本类型与引用类型的桥梁
衔接 Java 基本类型与引用类型,破解自动装箱拆箱谜题,搞定面试高频考点。
一、包装类核心概念
1. 什么是包装类?
包装类就是 基本数据类型对应的引用数据类型。用一个对象将基本数据类型的值'包裹'起来,让基本数据类型拥有对象的特性(可以调用方法、参与面向对象编程)。
2. 为什么需要包装类?
Java 是面向对象编程语言,但 8 种基本数据类型(byte、short 等)不是对象,没有对象的属性和方法,无法满足某些场景的需求,比如:
- 集合框架(如 ArrayList、HashMap)只能存储引用数据类型,不能直接存储基本数据类型;
- 泛型的使用场景中,也只能使用引用数据类型,不能使用基本数据类型;
- 某些方法的参数要求是 Object 类型(引用类型),需要将基本数据类型转换为引用类型才能传递。
简单说:包装类的核心作用,就是 让基本数据类型'变成'对象,适配 Java 面向对象的编程模型。
二、8 种基本数据类型与包装类对应关系
Java 中共有 8 种基本数据类型,每种都有对应的包装类。其中 7 种包装类继承自 Number 类,只有 Character 继承自 Object 类,具体对应关系如下(重点记忆,面试常考):
| 基本数据类型 | 包装类(引用类型) | 父类 | 备注 |
|---|---|---|---|
| byte | Byte | Number | 字节型,占 1 字节 |
| short | Short | Number | 短整型,占 2 字节 |
| int | Integer | Number | 整型,占 4 字节(最常用) |
| long | Long | Number | 长整型,占 8 字节 |
| float | Float | Number | 单精度浮点型,占 4 字节 |
| double | Double | Number | 双精度浮点型,占 8 字节 |
| char | Character | Object | 字符型,占 2 字节 |
| boolean | Boolean | Object | 布尔型,占 1 字节 |
✨ 小技巧: 除了
int对应Integer、char对应Character,其余 6 种包装类的类名,都是基本数据类型首字母大写(如 byte → Byte、long → Long)。
三、包装类的使用(以 Integer 为例)
8 种包装类的用法高度相似,其中 Integer 是日常开发和面试中最常用、考点最多 的包装类,下面以 Integer 为核心讲解,其他包装类可类比学习。
(一)JDK5 以前:手动装箱与拆箱(了解)
JDK5 之前,没有自动转换机制,需要手动完成'基本类型 ↔ 包装类'的转换,称为 和 。


