Java 8种基本数据类型均有对应包装类,位于java.lang包,支持自动装箱拆箱、缓存机制(如Integer缓存-128~127)及丰富工具方法。

Java 中的 8 种基本数据类型都有对应的包装类,它们位于 java.lang 包下,用于将基本类型“对象化”,以便在集合、泛型、反射等场景中使用。
基本数据类型与包装类一一对应
每种基本类型都有且仅有一个标准包装类,命名规则通常是首字母大写的类型名(int → Integer,double → Double 等):
- byte → Byte
- short → Short
- int → Integer
- long → Long
- float → Float
- double → Double
- char → Character
- boolean → Boolean
自动装箱与拆箱机制
从 Java 5 开始支持自动装箱(primitive → wrapper)和拆箱(wrapper → primitive),简化了类型转换:
- 装箱示例:
Integer i = 100;(编译器自动调用Integer.valueOf(100)) - 拆箱示例:
int x = i;(编译器自动调用i.intValue()) - 注意:对
null包装类变量执行拆箱会抛出NullPointerException
包装类的缓存机制(以 Integer 为例)
为提升性能,部分包装类对常用值做了缓存:
立即学习“Java免费学习笔记(深入)”;
-
Integer 缓存范围是
-128 ~ 127(可由 JVM 参数-XX:AutoBoxCacheMax调整) -
Character 缓存
0 ~ 127 -
Boolean 只有
true和false两个实例,始终复用 - 比较时推荐用
equals(),避免因缓存导致的==判断陷阱(如Integer a = 128; Integer b = 128; a == b结果为false)
包装类的常用操作
每个包装类都提供实用方法,便于类型转换和数值处理:
- 静态工厂方法:
Integer.parseInt("123")、Double.valueOf("3.14") - 实例方法:
i.toString()、i.compareTo(j)、i.equals(obj) - 获取原始值:
i.intValue()、b.booleanValue() - 类型检查:
Character.isLetter('a')、Character.isDigit('5')










