Java基本数据类型包装类是java.lang包中8个final类,用于将基本类型封装为对象以适配集合等场景;推荐用valueOf()创建实例以利用缓存,支持自动装箱/拆箱,但需防范null拆箱异常,并提供parseXxx、MAX_VALUE等静态工具方法。

Java 的基本数据类型包装类(Wrapper Classes)用于将 8 种基本类型(如 int、boolean 等)封装成对象,以便在需要对象的场景中使用(比如集合、泛型、反射等)。它们位于 java.lang 包中,每个都对应一个基本类型。
常见包装类及其对应关系
Java 提供了以下 8 个包装类,全部是 final 类且不可继承:
-
Byte←byte -
Short←short -
Integer←int -
Long←long -
Float←float -
Double←double -
Character←char -
Boolean←boolean
创建包装类实例的常用方式
推荐使用静态工厂方法(如 Integer.valueOf()),而不是 new 构造器——前者支持缓存优化(如 -128 ~ 127 范围内的 Integer 对象可复用):
Integer i1 = Integer.valueOf(100); // ✅ 推荐Integer i2 = new Integer(100); // ❌ 已废弃(Java 9+),且不走缓存Boolean b = Boolean.valueOf("true"); // 支持字符串解析Character c = Character.valueOf('A');
注意:Double.valueOf("NaN")、Integer.valueOf("123") 等字符串解析方法会抛出 NumberFormatException,需配合 try-catch 使用。
立即学习“Java免费学习笔记(深入)”;
自动装箱与拆箱(Autoboxing/Unboxing)
从 Java 5 开始,编译器支持自动转换,简化了基本类型与包装类之间的互转:
-
装箱:基本类型 → 包装类
int x = 42;<br>Integer obj = x; // 自动调用 Integer.valueOf(x)
-
拆箱:包装类 → 基本类型
Integer obj = 100;<br>int y = obj; // 自动调用 obj.intValue()
⚠️ 注意空指针风险:若包装类变量为 null,拆箱时会抛 NullPointerException:
Integer i = null;<br>int x = i; // 运行时报错
常用工具方法和属性
每个包装类都提供实用的静态方法和常量:
-
Integer.parseInt("123")→ 返回int(非对象),比valueOf更轻量 -
Integer.MAX_VALUE/MIN_VALUE—— 获取取值范围 -
Double.isNaN(double d)、Double.isInfinite(double d) -
Boolean.parseBoolean("true")(注意:不区分大小写,但只识别"true"字符串,其余全为false) -
Character.isLetter('a')、Character.toUpperCase('b')
这些方法不依赖对象实例,直接通过类名调用,适合做类型校验或转换。


















