八股文——包装类
装箱:基本类型 → 包装类型(如 int 变 Integer)
拆箱:包装类型 → 基本类型(如 Integer 变 int)
JDK1.5之后,装箱都是由编译器自动完成的
Java 集合(如 List)只能存对象,不能存基本类型(int/double等) 包装类型(如 Integer/Double)让基本类型能当对象使用
包装类:
Java 设计包装类主要解决 "基本类型无法融入面向对象体系" 的根本矛盾
Integer 是 int 类型的包装类,也就是将 int 类型包装成一个 Object 对象。对象封装有许多好处:
- 第一、可以将属性(即数据)和处理这些数据的方法结合在一起。例如,Integer 就提供了 parseInt() 等方法专门用于处理 int 类型的数据。
- 第二、在 Java 中,大部分方法或类都是用来处理类类型对象的。比如 ArrayList 集合类只能存储类类型的对象,此时如果想将一个 int 类型的数据存入 List 是不可能的,必须将其包装成类,也就是 Integer,才能被 List 接收。因此,Integer 的存在是非常必要的。
场景 | 示例 | 推荐类型 |
---|---|---|
集合存储 | List<Integer> | 包装类 |
数据库映射 | 实体类的 Integer 字段 | 包装类 |
需要空值 | 标记"未初始化"状态 | 包装类 |