四条主线:对应关系(8组,含int→Integer、char→Character两个特例)、核心区别(集合要求、泛型限制、null表达、工具方法)、装箱拆箱机制(编译器补valueOf()和intValue(),含-128~127缓存)、典型陷阱(==比较、空指针、循环性能、equals判空)。

直接抓住四条主线:对应关系、核心区别、装箱拆箱机制、典型陷阱。不用死记硬背,理解逻辑就能稳住面试表现。
记住8组对应关系,重点盯住两个特例
基本类型和包装类是一一对应的,全部在 java.lang 包下,自动可用:
- byte → Byte、short → Short、long → Long、float → Float、double → Double —— 都是首字母大写,规律性强
- int → Integer(不是 Int)、char → Character(不是 Char)—— 这两个是高频易错点,单独强化记忆
- boolean → Boolean,注意 B 大写,不是 Bool 或 Booleana
基本类型和包装类的核心区别要能对比说清
面试常问“为什么要有包装类”,答出这四点就到位:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
-
集合要求:List、Map、Set 只能存对象,List
编译不通过,必须用 List - 泛型限制:泛型擦除后需要运行时类型信息,基本类型不具备,包装类是真正的引用类型
- null 表达能力:int 默认是 0,无法区分“没赋值”和“就是 0”;Integer 默认 null,语义更清晰(比如数据库字段允许为空)
- 工具方法支持:Integer.parseInt()、Double.toHexString()、Character.isLetter() 等都是包装类提供的实用能力,基本类型做不到
自动装箱/拆箱不是魔法,得知道它怎么发生的
Java 5 引入的语法糖,本质是编译器帮你补代码:
- Integer a = 100; → 编译后变成 Integer a = Integer.valueOf(100)
- int b = a; → 编译后变成 int b = a.intValue()
- 集合操作如 list.add(42) 也是自动装箱,底层调用的是 Integer.valueOf(42)
- valueOf() 方法有缓存优化:Integer 默认缓存 -128 到 127 的整数,超出范围会新建对象(这点常考 == 比较)
必须避开的四个实战陷阱
这些是简历写“熟悉 Java”却当场翻车的高发区:
- == 比较陷阱:Integer a = 127, b = 127 → a == b 为 true;但 a = 128, b = 128 → a == b 为 false(缓存失效,指向不同对象);一律用 equals() 比较值
- 空指针风险:Integer c = null; int d = c; 运行时报 NullPointerException(自动拆箱时对 null 调用 intValue)
- 循环中性能损耗:for (Integer i = 0; i
- Boolean 特殊性:Boolean.TRUE / FALSE 是静态常量,所有 true 都指向同一个对象,所以 Boolean a = true; Boolean b = true; 时 a == b 恒为 true
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










