JDK JDK 学习手册8 → 27 · JDK 专用学习站
INTERVIEW · JDK 17

面试模块:15 道题,接住下一问

先自己回答,再展开对照。答案里带追问与版本陷阱,比结论更重要。
使用方式按主题筛选,先答后看。能回答「为什么」和「版本边界」才算过关;只背结论会在追问处露馅。
Q01

record 和普通类、Lombok 生成的类有什么本质区别?

record高频JEP 395
Q02

紧凑构造器和规范构造器有什么区别?为什么紧凑构造器里不能写 this.x = x?

record进阶JEP 395
Q03

record 能做什么、不能做什么?它适合当 JPA 实体吗?

record进阶JEP 395
Q04

sealed 的 permits 有哪些约束?它和 final、enum 是什么关系?

sealed高频JEP 409
Q05

JDK 17 里 sealed 能让 switch 不写 default 吗?

sealed高频JEP 409JEP 406
Q06

if (o instanceof String s && s.length() > 0) 中 s 为什么能用?换成 || 为什么不行?

模式匹配进阶JEP 394
Q07

JDK 17 的 switch 类型模式是什么状态?写法和 21 有什么不同?

模式匹配高频JEP 406
Q08

模式 switch 的分支顺序和穷尽性是怎么判定的?

模式匹配高频JEP 406
Q09

文本块的缩进和附带空白是怎么计算的?

文本块进阶JEP 378
Q10

文本块里的 \s、行尾 \ 和 formatted 分别怎么用?

文本块进阶JEP 378
Q11

JEP 403 改变了什么?--illegal-access=permit 在 17 还能用吗?

模块与封装高频JEP 403
Q12

exports 和 opens 有什么区别?--add-exports 与 --add-opens 分别什么时候用?

模块与封装高频JEP 403JEP 261
Q13

G1 的 Region、Remembered Set 和 Mixed GC 分别解决什么问题?

GC 与运行时进阶
Q14

ZGC 和 Shenandoah 的实现路线有什么不同?17 上怎么选?

GC 与运行时高频JEP 377JEP 379
Q15

从 8 / 11 升级到 17,最重要的检查项有哪些?

迁移与版本边界高频JEP 403JEP 407JEP 411

怎么刷这套题HOWTO

  1. 先按主题筛:一次只攻一个主题,避免题目切换导致理解断裂。
  2. 先自答再展开:用 30 秒说出结论 + 一条原因 + 一个例子。
  3. 重点看追问:追问模拟面试官的第二层问题,能接住才算真会。
  4. 最后看版本陷阱:同一 API 在不同 JDK 的状态差异,是最容易答错的点。
  5. 标记掌握:不确定的不要标记;隔天再复习一遍。

难度说明LEVELS

  • 高频:面试中出现频率高,或属于 JDK 17 的核心卖点。
  • 进阶:需要理解机制、版本边界或实现取舍,答好能拉开差距。

JDK 学习手册 · JDK / Java 专用学习站 · 纯静态 · 双击 index.html 即可使用

本站专注 JDK 版本演进与 Java 教学,非 Oracle / OpenJDK 官方站点。版本数据来自 OpenJDK 官方 Features 表;课程示例已在对应本机 JDK 实测。构建日期 2026-11-12。