导语:本篇收尾两个"块状"专题。图论部分覆盖存储结构、DFS/BFS、拓扑排序、最短路与最小生成树;字符串部分覆盖 KMP、最长回文子串、滚动哈希与高频题型。算法均给出可运行的 Java 实现。共 11 题。
导语:这一篇是"解题套路库"。双指针、滑动窗口、前缀和解决线性扫描类问题;递归、分治、回溯解决枚举与拆分类问题;贪心与动态规划解决最优化问题。所有套路都配可运行的 Java 实现,并标注易错点。共 14 题。
导语:排序是面试中"必须能手写"的少数几个算法之一。本篇先给出一张复杂度与稳定性总表,再逐个手写实现(冒泡、选择、插入、希尔、归并、快排、计数、桶、基数),最后覆盖二分查找的四个坑与两种变体、快速选择与外部排序。所有算法均给出可运行的 Java 代码。共 13 题。
导语:本篇覆盖数据结构面试的三大主战场——哈希表(冲突解决与布隆过滤器)、树(遍历、BST、AVL/红黑树/B+树、跳表)与堆(建堆、堆排、Top K),并补齐 Trie 与并查集。树与堆的关键实现均给出 Java 代码。共 16 题。
导语:算法面试的第一步是能把「复杂度」说清楚,之后才是结构与套路。本篇覆盖复杂度分析方法(含均摊复杂度这一易错点),以及数组、链表、栈、队列四大线性结构,所有实现均给出可运行的 Java 代码。共 15 题。
导语:Java 22 ~ 27 的核心脉络只有三条:语言侧把模式匹配做到底(原始类型模式、未命名变量)、并发侧补齐虚拟线程生态(ScopedValue、结构化并发、无 pinning)、运行时侧押注启动速度与内存占用(AOT 缓存、紧凑对象头)。其中 Java 24 的 JEP 491 修正了「虚拟线程不能用 synchronized」的过时结论,是本篇最值得记住的一条。由于 JDK 26/27 刚发布不久,面试中一般只要求「了解方向」。
导语:Java 21 是近十年最重要的 LTS 之一,因为它带来了虚拟线程——一次对「Java 并发模型」的根本性重构;同时模式匹配 switch / record 模式双双转正,让 Java 第一次有了接近函数式语言的表达能力。本篇把虚拟线程的八个高频追问(要不要线程池、会不会 pin、和 ThreadLocal 的关系)讲透,并附 Java 18 ~ 20 的铺垫特性。
导语:Java 17 是继 8、11 之后的第三个 LTS,也是目前企业升级最主流的目标版本。它把三个「预览了好几轮」的语言特性一次性转正——record、密封类、
instanceof模式匹配,同时开启了「强封装 JDK 内部 API」,直接决定了很多老项目的升级方式。本篇围绕这些必问点,并附一份 Java 8 → 17 升级清单。
导语:Java 12 ~ 15 是「预览特性试验田」阶段——switch 表达式、文本块、
instanceof模式匹配、record、密封类依次以预览形态登场,再逐步转正。面试考点集中在 switch 表达式的yield、文本块与原始字符串的区别、精确空指针提示,以及「预览特性如何启用」这个必被追问的机制性问题。
导语:Java 9 开启了「每半年一版」的快节奏,也带来了争议最大的模块系统(JPMS);Java 10 只做了一件事但影响深远——
var类型推断;Java 11 是 8 之后的第一个 LTS,标准 HTTP Client、String 增强和单文件运行是面试最常问的三点。本篇按版本梳理 Java 9 ~ 11 的代表性特性、必问点和代码示例。
