目录一、包装类1.基本数据类型对应的包装类型2.装箱和拆箱3.自动装箱和自动拆箱二、面试题示例原因解析一、包装类在Java中由于基本类型不是继承自Object类为了在泛型代码中可以支持基本类型Java给每一个对应的基本类型都对应了一个包装类型。1.基本数据类型对应的包装类型通过上面的图片都可以看到除了Character 和 Integer其余都是首字母大写2.装箱和拆箱3.自动装箱和自动拆箱可以看到在使用过程中装箱和拆箱带来不少的代码量所以为了减少开发者的负担java 提供了自动机制。二、面试题示例下列代码输出什么为什么结果原因解析这是 Java 中Integer的缓存机制和运算符特性共同导致的结果对于引用类型的含义Integer是引用类型包装类比较的是两个对象的内存地址而非数值本身。Integer缓存池Integer CacheJava 为了优化性能对Integer对象提供了缓存机制默认缓存范围-128 ~ 127当使用自动装箱如Integer a 127;创建对象时数值在缓存范围内直接返回缓存中的对象实例因此a和b指向同一个地址a b为true。数值超出缓存范围创建新的对象实例因此c和d是两个不同的对象地址不同c d为false。