Wrapper类用于将基本类型包装为对象,以支持集合、泛型、null值及工具方法;每种基本类型对应首字母大写的包装类;Java 5起支持自动装箱/拆箱,但需注意缓存范围(-128~127)和equals比较。

Java 的 Wrapper 类是用来把基本数据类型包装成对象的工具类,让它们能参与面向对象操作,比如放进集合、作为泛型参数、支持 null 值等。
为什么需要 Wrapper 类
Java 中 int、double、boolean 等是基本类型,不是对象,不能直接用在需要 Object 的地方。比如 ArrayList 只能存对象,不能存 int;方法参数如果是 Object 类型,也不能传 int 进去。Wrapper 类(如 Integer、Double、Boolean)就解决了这个问题。
- 支持集合操作:ArrayList
list = new ArrayList(); - 支持泛型:Map
cache = new HashMap(); - 可表示“无值”:Integer 可为 null,而 int 必须有默认值 0
- 提供实用方法:parseInt()、toString()、valueOf()、compareTo() 等
常用 Wrapper 类及对应关系
每个基本类型都有一个对应的 Wrapper 类,名字首字母大写:
- byte → Byte
- short → Short
- int → Integer
- long → Long
- float → Float
- double → Double
- char → Character
- boolean → Boolean
自动装箱与拆箱(Auto-boxing / Unboxing)
从 Java 5 开始,编译器会自动在基本类型和对应 Wrapper 类之间转换:
立即学习“Java免费学习笔记(深入)”;
专业级别的大型网站建站产品,JAVA技术的CMS管理系统,ospod提供上百套专业模板供您选择,包括审批工作流,流量统计和流行网络应用,是公司企业建设专业网站的首选产品,也使用于专业建站人士完成复杂网站项目。管理地址cmsadmin登陆用户名:ospod 密码:ospod1234
- 装箱:int → Integer(如 Integer i = 100;)
- 拆箱:Integer → int(如 int x = i;)
注意:装箱时小范围整数(-128 ~ 127)会被缓存复用,所以 Integer a = 100; Integer b = 100; 时 a == b 为 true;但 Integer c = 200; Integer d = 200; 时 c == d 是 false(因为超出缓存范围,新建对象)。比较 Wrapper 对象建议统一用 equals(),避免陷阱。
推荐的创建和使用方式
尽量用 valueOf() 而非构造器(new),因为 valueOf() 会利用缓存提升性能:
- ✅ 推荐:Integer i = Integer.valueOf(123);
- ❌ 不推荐:Integer j = new Integer(123);(已过时,且不走缓存)
- ✅ 字符串转数字:Integer.parseInt("123") 返回 int;Integer.valueOf("123") 返回 Integer
- ✅ 安全判空再拆箱:if (num != null) { int value = num; }
基本上就这些。用好 Wrapper 类,关键在理解它和基本类型的边界、缓存机制、以及 null 安全性。










