Wrapper类用于将基本类型包装为对象,以支持集合、泛型、null值及工具方法;每种基本类型对应首字母大写的包装类;Java 5起支持自动装箱/拆箱,但需注意缓存范围(-128~127)和equals比较。
Java 的 Wrapper 类是用来把基本数据类型包装成对象的工具类,让它们能参与面向对象操作,比如放进集合、作为泛型参数、支持 null 值等。
Java 中 int、double、boolean 等是基本类型,不是对象,不能直接用在需要 Object 的地方。比如 ArrayList 只能存对象,不能存 int;方法参数如果是 Object 类型,也不能传 int 进去。Wrapper 类(如 Integer、Double、Boolean)就解决了这个问题。
每个基本类型都有一个对应的 Wrapper 类,名字首字母大写:
从 Java 5 开始,编译器会自动在基本类型和对应 Wrapper 类之间转换:
注意:装箱时小范围整数(-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() 会利用缓存提升性能:
基本上就这些。用好 Wrapper 类,关键在理解它和基本类型的边界、缓存机制、以及 null 安全性。