Java 中的包装类 – 简明指南

发布: (2026年4月22日 GMT+8 13:01)
3 分钟阅读
原文: Dev.to

Source: Dev.to

什么是包装类?

包装类将基本数据类型转换为对象,将基本值“包装”在对象内部。

PrimitiveWrapper
intInteger
charCharacter
doubleDouble
booleanBoolean

为什么需要包装类?

集合只能存放对象

Java 的集合(如 ArrayList)无法存放基本类型。

// 不允许
ArrayList list;

// 允许
ArrayList list;

实用方法

包装类提供了有用的转换方法。

int i = Integer.parseInt("123");        // String → int
Double d = Double.valueOf("10.5");     // String → Double

面向对象的特性

API、框架以及泛型通常要求使用对象而不是基本类型。包装类使你能够在面向对象的范式中工作。

自动装箱与拆箱

Java 会在基本类型和其包装对象之间自动转换:

  • 自动装箱(Autoboxing) – 基本类型 → 对象
  • 拆箱(Unboxing) – 对象 → 基本类型

这种自动转换让代码更简洁,减少了样板代码。

包装对象存放在哪里?

  • 基本值 – 存放在栈上。
  • 包装对象 – 存放在堆上。
  • 引用变量 – 存放在栈上,指向堆中的对象。
Integer a = 10; // 'a' 引用在栈上;Integer 对象在堆上。

Integer 缓存

Java 会缓存 ‑128127 之间的 Integer 对象。

Integer x = 100;
Integer y = 100;
System.out.println(x == y); // true(同一缓存对象)

超出该范围的值会创建不同的对象:

Integer x = 200;
Integer y = 200;
System.out.println(x == y); // false(不同对象)

最后思考

包装类在 Java 中至关重要。虽然基本类型提供了速度优势,但包装类为集合、API 和基于对象的操作提供了所需的灵活性。掌握包装类、自动装箱以及它们的内存行为,对面试准备尤为关键。

0 浏览
Back to Blog

相关文章

阅读更多 »