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

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

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

ScopedValue 和 ThreadLocal 的本质区别是什么?为什么虚拟线程放大了 ThreadLocal 的成本?

Scoped Values高频JEP 506
Q02

ScopedValue 的绑定生命周期是怎样的?嵌套、异常、结构化 fork 与手工线程分别如何变化?

Scoped Values高频JEP 506
Q03

JDK 25 的 ScopedValue API 与 21 预览版有哪些不兼容变化?升级时要注意什么?

Scoped Values进阶JEP 506
Q04

结构化并发解决了 ExecutorService + Future 的什么问题?它不是性能优化,那它优化的是什么?

结构化并发高频JEP 505
Q05

JDK 25 的 open()/Joiner API 怎么用?默认策略、allSuccessfulOrThrow 与 anySuccessfulResultOrThrow 有什么区别?

结构化并发高频JEP 505
Q06

失败、超时、中断时取消如何传播?为什么 close() 可能长时间阻塞?

结构化并发进阶JEP 505
Q07

紧凑源文件允许什么、禁止什么?java Hello.java 与 javac 的行为差别在哪里?

语言与启动高频JEP 512
Q08

灵活构造器体允许在 super()/this() 之前写什么?哪些操作会被拒绝?

语言与启动进阶JEP 513
Q09

实例 main 的启动协议是什么?为什么紧凑源文件能直接用 java.base 的类型?

语言与启动进阶JEP 512
Q10

import module java.base; 到底导入了什么?它和 import java.util.*; 有什么不同?

模块导入高频JEP 511
Q11

模块导入能替代 requires 吗?在命名模块与 classpath 下分别有什么限制?

模块导入进阶JEP 511
Q12

紧凑对象头把对象头压到多少位?JDK 25 默认开启吗?启用条件是什么?

运行时特性高频JEP 450JEP 519
Q13

分代 Shenandoah 与 AOT 缓存在 JDK 25 各是什么状态?默认行为变了吗?

运行时特性进阶JEP 521JEP 514JEP 515
Q14

从 21 升到 25,class 文件版本、预览 class 与编译参数要怎么处理?

版本迁移高频JEP 503JEP 506JEP 505
Q15

32 位 x86 移除、Security Manager 与 Thread.stop 在 25 分别是什么状态?升级时怎么排查?

版本迁移进阶JEP 503

怎么刷这套题HOWTO

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

难度说明LEVELS

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

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

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