面试复习资料 列表全部文章
面试复习资料

2025–2026 后端面试趋势观察:AI 应用、虚拟线程、可观测性、系统设计与行情(附 4 周复习计划)

基于公开面经、备战指南、官方 JEP 与薪资报告,梳理近期后端面试考点变化:AI 应用、JDK 21 虚拟线程、可观测性、系统设计与算法要求、行情与谈判;每条结论标注依据,并给初中高级各一份 4 周复习计划。

更多

先说方法,因为“趋势文”最容易变成“我觉得”。这篇文章的每一条结论,我都会标注依据:是哪份资料里明确写了,还是我从几份资料里推断出来的。资料范围:我实际打开读过的牛客 Java 面经合集、JavaGuide 的 2026 面试重点与通关计划、卡码笔记与小林 coding 的大模型面经题集、GitHub 上的两个 AI 面试题库、OpenJDK 的 JEP 444 与 JEP 491、OpenTelemetry 文档、Anthropic 与 MCP 的官方资料,以及两份 2026 届校招薪资报告。样本很有限:这些多是面经汇总和二次整理,很多页面没有明确标注年份,且存在幸存者偏差(愿意写面经的人不代表所有人)。所以下面的“趋势”请当作“读了这些材料之后的合理判断”,而不是行业统计。

我自己是 8 年 Java 后端,做过财税 SaaS、营销 SCRM 中台、电商,也做过 LLM 应用落地,这篇既是写给读者的,也是我自己的复习备忘录。本文没有引用任何“某某公司内部消息”,也不点名任何具体公司的面试官。

用法:先看第一节的趋势总览图,找到自己的年限,再读对应的“怎么调整”,最后抄走第七节的 4 周计划表。按惯例,各专题里用 🌱(0–3 年)、🌿(3–5 年)、🌳(5 年+)标注不同年限该怎么调整重点。

一、趋势总览:哪些在升温,哪些没变

先给一张我整理的“考点热度变化”图。注意它是定性判断,不是量化统计,每一项的依据在后面对应小节展开。

考点热度变化(定性判断,依据见正文各节) 考点 稳定核心 明显升温 分化 / 视岗位 性质 MySQL / Redis / Java 基础 仍是第一梯队 并发 + 虚拟线程 老题 + 新版本差异 AI 应用(RAG / Agent / 工具调用) 新增且增长 可观测性 / 线上排查 / 云原生 中高级更明显 算法手撕 公司差异大 系统设计 / 场景题 / 项目深挖 随年限权重上升 圆点位置表示我的判断落在哪一列,可同时落两列;“我的推断”成分较多的项目正文会明说

二、趋势一:AI 应用从“加分项”变成“独立考察维度”

我的结论

后端岗位(尤其是有 AI 业务的团队)里,AI 应用题正在从“简历上写了才问”变成“一个独立题块”,问法从“会不会调接口”转向“RAG、Agent 怎么做到可上线”。

依据

  • 牛客 Java 面经合集:其中一场后端面经只有 20 分钟,问题是 RAG 知识库业务场景、Milvus 向量库选型、Agent 用户意图识别,之后才回到 CAS、线程池、B+ 树;另一场实习面经里出现了 Agent Skill 构建、大模型幻觉原理;还有一家的项目环节问 Agent 设计范式。(页面标注月日,未标年份。)
  • 小林 coding 的 AI 题集:把题目按 Agent(16)、RAG(20)、工具调用(16)、大模型工程(22)分类,共 74 题,并声称来自大厂高频面试;强调考工程思维而非背诵。(“来自大厂”是其自述,我无法逐题验证。)
  • 卡码笔记:明确写应用开发岗位重点在 RAG 与 Agent 工程,算法岗位才偏 Transformer 与微调;并有一节是 AI 编程(Claude Code、Vibe Coding)与工程规范。
  • JavaGuide 项目经历指南:简历上如果写了 AI Agent 项目,要能讲清 Agent 工作流和失败恢复。
  • JavaGuide 面试重点总结:这篇导航里有“AI 应用开发”板块,但正文的重点排序里没有展开 AI——这说明传统重点(MySQL / Redis / Java)的地位没有被替代。

怎么读这个趋势

这是我“推断”成分较高的一条:AI 题被提得多,是因为新岗位需要新能力,但并不意味着所有后端岗都问。合理的判断是:目标岗位 JD 里出现“大模型 / Agent / RAG / AI 应用”字样,就当作必考;JD 没写,就当作“加分项与聊天话题”。另外,这些题的考察焦点是“工程化”:评测、成本、安全、可观测,而不是模型原理。我在《面经复盘:AI 应用 / Agent 后端岗》那篇里把追问链展开了。

不同年限怎么调整

  • 🌱 初级:不必All in。建议花 10%–15% 的复习时间:理解 RAG 流程、Function Calling 的四步、ReAct 是什么,做一个能跑的小 Demo,简历上写清“你自己做了什么”。基本盘(集合、并发、MySQL、Redis)不能让位。
  • 🌿 中级:补“为什么这么选”:切分与检索优化、Embedding 选型、MCP 与 Function Calling 的关系、ReAct 死循环与护栏。能手写工具调用循环。
  • 🌳 高级:重点在评测体系、成本账、灰度与治理、安全(Prompt Injection、权限、审计)、系统设计(企业级 Agent 平台、模型网关)。这些正是后端架构经验的迁移区。

技术事实补一条:MCP 官方规范(2025-06-18 版)里明确要求 Host 在调用工具前取得用户同意,并把工具行为描述视为不可信,除非来自可信服务;这类“安全与边界”的条款是面试里很好的论据。Anthropic 的《Building effective agents》则给出了“先简单后复杂”的选型原则:只有在开放式、步骤不可预测且结果可验证时才上 Agent。

三、趋势二:并发题“老题不变,新增 JDK 21+ 的版本差异”

我的结论

线程池、锁、CAS、ThreadLocal 这些老题依旧高频;同时,虚拟线程(JDK 21 定稿)成为中高级并发题的新追问点,并且回答时必须标注 JDK 版本,因为 JDK 24 之后 synchronized 的“钉住”问题有重大变化。

依据

  • 牛客面经合集:多场面经出现线程池参数、CAS 与 ABA、ThreadLocal 原理、线程池拒绝策略、synchronized / ReentrantLock 底层实现;一场“5 年经验、三轮”的面经,第一轮 45 分钟里出现“虚拟线程与平台线程的核心区别”“GraalVM 原生镜像”“Spring Boot 3.x 特性”“线上架构优化落地”(页面标注月份,未标年份)。
  • JavaGuide 面试重点总结:“并发知识在中大厂问得更多更难,大厂喜欢深挖底层”。
  • OpenJDK JEP 444:虚拟线程在 JDK 21 定稿;适合并发任务多(超过几千)且非 CPU 密集的负载;虚拟线程“不应该被池化”,每个任务新建一个,需要限流用信号量;在 synchronized 块或本地方法中阻塞会钉住载体线程。
  • OpenJDK JEP 491:JDK 24 起,虚拟线程在 synchronized 中阻塞时可以卸载,不再钉住载体线程;仍会钉住的只剩类加载、类初始化等带本地帧的少数场景;jdk.tracePinnedThreads 属性被移除,诊断改为 JFR 的 jdk.VirtualThreadPinned 事件。

标准回答要点

“虚拟线程和平台线程的区别”,我会这样答(可背):

  1. 是什么:由 JDK 调度的轻量线程,M:N 映射到少量平台线程(载体线程)上,创建成本很低,可以有数百万个。
  2. 适合什么:IO 密集、高并发、阻塞式代码风格(每请求一线程);不适合 CPU 密集,因为受限于载体线程数。
  3. 怎么用:每任务一个虚拟线程,不要池化;用 Semaphore 控制对下游的并发;ThreadLocal 仍可用但不要拿它缓存昂贵资源。
  4. 坑:JDK 21–23 中 synchronized 内阻塞会钉住(JDK 24 已改进),可换 ReentrantLock 或升级版本;下游连接池 / 数据库连接数会成为新瓶颈;用 JFR 事件排查钉住。
import java.util.concurrent.*;

public class VirtualThreadDemo {
    // JDK 21+:每个任务一个虚拟线程,不需要池化
    public static void main(String[] args) throws Exception {
        Semaphore downstream = new Semaphore(200); // 用信号量保护下游,而不是限制线程数
        try (ExecutorService ex = Executors.newVirtualThreadPerTaskExecutor()) {
            for (int i = 0; i < 10_000; i++) {
                final int id = i;
                ex.submit(() -> {
                    downstream.acquire();
                    try {
                        return callSlowRemoteService(id); // 阻塞 IO:虚拟线程会卸载
                    } finally {
                        downstream.release();
                    }
                });
            }
        } // try-with-resources:close() 会等待任务完成
    }

    static String callSlowRemoteService(int id) throws InterruptedException {
        Thread.sleep(200);
        return "ok-" + id;
    }
}

另外一个和框架相关的事实(这条来自我自己的经验,不在上面读过的材料里,请以 Spring 官方文档为准):Spring Boot 3.2 起在 JDK 21 上可以通过配置项打开虚拟线程支持。面试时可以带一句“我会先在压测环境验证,再决定是否全量开启”,这句话比背配置项更有价值。

不同年限怎么调整

  • 🌱 初级:老题为主(线程池流程、synchronized 与 ReentrantLock、volatile、CAS),虚拟线程只需知道“是什么、解决什么问题”。
  • 🌿 中级:能讲虚拟线程与平台线程区别、适用场景、不池化原则;知道钉住问题和 JDK 版本差异。
  • 🌳 高级:能讲迁移方案(压测、下游连接池容量、ThreadLocal 使用、监控钉住事件)、以及“不该用”的场景,并能对比响应式编程的取舍。

四、趋势三:可观测性与线上排查成为“中高级标配”

我的结论

“出问题怎么办”比“怎么设计”更能筛人。中高级面试里,日志、指标、链路追踪、Profiling、线上 CPU / OOM / 慢 SQL 排查是必备,且 OpenTelemetry 逐渐成为通用词汇。这条“依据强度”比前两条弱,我会诚实标注。

依据

  • 牛客面经合集:一场二面式的“深度八股拷打”里出现了 Prometheus 监控、Docker / K8s 容器化;PDD 服务端面经的 20 多个追问里包括 JVM 参数调优、慢查询定位、线上问题排查与根治;字节 5 年经验面经里有“线上架构优化落地”。
  • JavaGuide 通关计划:阶段里专门有“JVM 优化与线上问题排查”,并强调按简历与岗位描述取舍。
  • OpenTelemetry 官方文档:信号包括 Traces(请求在系统里的路径)、Metrics(运行时的测量值)、Logs(事件记录)、Baggage(在信号间传递的上下文信息);Events 和 Profiles 仍在开发中。这说明“三大支柱 + 上下文”是可观测性的标准词汇;Profiles 仍在发展,别在面试里说得像成熟标准。
  • AI 面经里的可观测性:卡码笔记对企业级 Agent 系统要求完整 Trace、Token 监控、错误分类;小林与其他题库把“工程稳定性、成本”单列。

标准回答框架

被问“线上 CPU 飙高怎么排查”,我固定走:top 找进程 → top -Hp 找线程 → 线程号转十六进制 → jstack 按 nid 找栈 → 定位代码;如果线程名是 GC 相关,转去看 GC 日志。(详细案例我在“生产事故”专栏里写过。)被问“慢”的问题,用三段式:先看指标缩小范围(哪个接口、哪个时段、哪个实例),再用 Trace 看时间花在哪个 span,最后用日志 / Profile / EXPLAIN 找根因。这套方法对 AI 应用同样适用:把“模型调用、检索、工具调用”都当成 span。

不同年限怎么调整

  • 🌱 初级:知道日志级别与规范、能用 jstack / jmap 的基本命令,理解“指标、日志、链路”三者区别。
  • 🌿 中级:能完整排查 CPU / 内存 / 慢 SQL / 线程阻塞,会看 GC 日志与堆转储,会在项目里接入链路追踪。
  • 🌳 高级:能设计告警与 SLO、做容量评估、复盘事故(根因、止血、改进项),并说明如何落地 OpenTelemetry 统一采集。

五、趋势四:系统设计与项目深挖的权重随年限上升;算法要求“看公司”

我的结论

  1. 项目经历是所有追问的入口,且年限越高占比越大;系统设计 / 场景题在中高级面试里往往占据一整轮。
  2. 算法手撕依然存在,但要求强度因公司而异:有的公司直接考代码题,有的更看原理。

依据

  • JavaGuide 通关计划:“项目通常是技术追问的入口”,建议准备 30 秒和 3 分钟两个版本的项目介绍;阶段划分里,系统设计、分布式与高可用都被要求“按简历与岗位取舍”。
  • JavaGuide 面试重点总结:字节跳动等公司重视代码功底,面试可能直接考代码题;阿里等公司笔试有代码题、面试里较少问代码,更关注原理和思考;校招一般不强制要求分布式与微服务,但简历写了性能优化会加分。
  • 牛客面经合集:手撕题出现最大子数组和、前 K 个高频元素、最大子矩阵和、对折链表、用 rand16 均匀抽样等;还有“12306 购票系统架构”“协同过滤推荐实现”“Spring 状态机设计与持久化”等场景 / 设计题。
  • 卡码笔记:“设计企业级 Agent 系统”作为系统设计题出现,给出工具管理、记忆状态、可靠性、可观测、安全五个维度。

怎么回答系统设计(一个通用骨架)

我给自己定的六步:需求澄清(规模、SLA、约束)→ 容量估算 → 主链路与数据模型 → 关键难点(一致性、热点、幂等、限流)→ 失败与降级 → 演进路线。中高级的分水岭是第 4、5 步:你能不能说出“这里为什么可能出事,我怎么提前防”。

算法的一条实用建议:按目标公司的风格分配。公开面经里手撕大多在 LeetCode Hot 100 的中低难度,所以对多数后端岗位,“Hot 100 熟练 + 常见设计题(LRU、限流器、并发队列)能手写”性价比最高;如果目标是明确重视代码的公司,再提高强度。

不同年限怎么调整

  • 🌱 初级:算法占比最高(约 25%–30% 的复习时间),系统设计只需要掌握“秒杀、短链、限流”等经典场景的基本思路,项目要做到“有数据、能讲取舍”。
  • 🌿 中级:算法维持手感(每周 5–8 题),系统设计和场景题升到 25% 左右,项目要能讲“性能优化前后数据”。
  • 🌳 高级:算法只保底(每周 3–5 题,保证手写不翻车),大头给系统设计、架构取舍、治理与复盘、团队与推动力(行为面试)。

六、趋势五:行情、薪资与谈判——高端坚挺,普通承压

我的结论

行情的关键词是分化:AI / 基础架构 / 核心系统方向薪资强,传统业务后端横盘略降;谈判要靠“筹码 + 结构化看待总包”。

依据

  • 代码随想录与卡码笔记的 2026 届校招薪资报告(样本来自知识星球近千个 offer 对比,属于特定社群,非全行业统计):Java 后端一线大厂核心部门约“25k–30k × 15–20 薪”,普通业务 / 区域岗位约“18k–23k × 14–16 薪”;广告、搜索、交易、基础架构等方向高于常规 CRUD;AI Infra / 推理 / 系统向年包 60–90 万以上,大模型应用开发工程岗多数 30–50 万;总体“高端依然很高,普通略有回落”;纯算法岗名额有限,应用开发岗位在扩大。
  • 同一份报告中的谈判建议:不要只看月薪,要看总包结构;筹码包括竞争 offer、高质量实习或项目、面试评价、岗位真有 HC;HR 说 base 动不了时可争取签字费。
  • 我搜索到但只读了摘要的资料:搜索结果摘要里提到“传统 Java 后端就业率下降、竞争比升高”的说法,但我没有打开原文核对数据,所以这里不采信具体数字。

谈判注意事项(我的经验 + 上述建议)

  1. 先问构成:月薪 × 月数、绩效浮动、股票 / 补贴、试用期打折、公积金基数、年终是否保底。口头承诺要落到书面。
  2. 别第一个报底线:先了解岗位范围,再用市场区间锚定;被逼着报数时,报一个区间,并把下限设在你真的能接受的位置。
  3. 用“事实”谈,不用“情绪”谈:竞争 offer(说事实,不炫耀)、项目成果、能带来的价值。
  4. base 谈不动就谈别的:签字费、职级、试用期、调薪时间点、远程 / 弹性。
  5. 别在 offer 未落地前“裸辞”或拒绝所有其他流程。
  6. 警惕“岗位名与实际工作不符”:问清团队业务、技术栈、值班与加班强度。

不同年限怎么调整

  • 🌱 初级:方向选择比小幅谈判更重要:核心业务线、有成长空间、能带你的团队,往往胜过多 1–2k 月薪。
  • 🌿 中级:要说清“我上一段的产出与影响”,谈判筹码是可量化的项目成果与稀缺技能(比如高并发、AI 落地)。
  • 🌳 高级:谈的是职级、职责范围和长期激励,而不是单纯月薪;要准备“为什么是你”的叙事。

七、初中高级各自怎么调整复习重点 + 4 周计划

先给一张“三层重点占比”对照,再给三份 4 周计划。占比是我基于上面几节依据做的建议,不是官方标准,请按目标岗位 JD 微调。JavaGuide 的通关计划本身也提供了 4 周压缩版和 8 周标准版,并提醒“看过”和“面试可用”是两回事:要做到能讲结论、能讲原理、能对应到项目经历。

方向🌱 初级🌿 中级🌳 高级
MySQL / Redis / Java 基础30%25%15%
并发 / JVM / 线上排查10%20%15%
Spring / 微服务 / 中间件10%15%10%
算法手撕25%10%5%
系统设计 / 场景题5%15%25%
AI 应用(视岗位)5%–10%10%15%
项目复盘 / 行为面试 / 谈判10%10%15%

🌱 初级(0–3 年)4 周计划

周主题每天做什么(约 2–3 小时)周产出
第 1 周项目 + MySQL写 30 秒 / 3 分钟项目介绍;索引、事务、MVCC、慢 SQL;每天 2 道算法(数组、哈希)项目讲稿;一页 MySQL 笔记;10 道题
第 2 周Redis + Java 基础数据结构、持久化、缓存三兄弟、一致性;集合(HashMap、ArrayList)、String、异常、泛型;每天 2 道算法(链表、双指针)缓存问题清单;集合对比表;10 道题
第 3 周并发 + Spring + 网络线程池流程、锁、CAS、volatile;IoC / AOP / 事务失效;TCP / HTTP;每天 2 道算法(栈队列、堆、二分)线程池流程图;事务失效清单;10 道题
第 4 周模拟面试 + AI 入门 + HR找人模拟 3 场;做一个 RAG 小 Demo 并写清取舍;准备 HR 问题与薪资锚点;每天 1–2 道算法复盘3 份复盘;Demo;HR 答案卡

🌿 中级(3–5 年)4 周计划

周主题每天做什么(约 2 小时)周产出
第 1 周底层机制并发(AQS、线程池源码要点、ConcurrentHashMap 7/8 差异)、JVM(GC、类加载、调优);每天 1 道算法保持手感底层机制速查表
第 2 周存储与中间件MySQL(执行计划、锁、主从与分库分表)、Redis(集群、热点 key、分布式锁)、MQ(可靠性、幂等、积压)三份“为什么/怎么选”笔记
第 3 周线上排查 + 可观测性 + 虚拟线程CPU / OOM / 慢 SQL 排查手册;链路追踪;JEP 444 / 491 读一遍;写一个虚拟线程压测对比排查 SOP;压测小报告
第 4 周项目量化 + 系统设计 + AI每个项目写“优化前后数据”;做 5 道设计题(秒杀、短链、限流、消息推送、排行榜);补 MCP、Function Calling、ReAct、RAG 的“为什么这么选”项目数据卡;5 份设计稿

🌳 高级(5 年以上)4 周计划

周主题每天做什么(约 1.5–2 小时)周产出
第 1 周项目叙事与影响力把 2–3 个核心项目写成“背景—挑战—方案—取舍—结果—复盘”;准备一次线上事故复盘;准备带团队 / 推动跨团队的案例3 份项目叙事;1 份事故复盘
第 2 周系统设计主战场每天 1 道大题(容量估算、数据模型、一致性、热点、降级、演进),录音自讲并复盘;覆盖交易、消息、搜索、推荐、多租户7 份设计稿
第 3 周治理与新技术判断可观测性 / SLO / 容量与成本;云原生(容器、发布、灰度);虚拟线程迁移方案;AI 应用的评测、成本账、安全与模型网关治理方案一页纸;AI 平台设计稿
第 4 周模拟面 + 谈判2–3 场高强度模拟(含算法保底 + 设计 + 行为);整理“为什么是我”的叙事;谈判 checklist(总包、职级、职责、期权)模拟复盘;谈判卡

三份计划共同的原则只有两条:每一个知识点都要落到你的项目里(JavaGuide 反复强调的“能对应到项目经历”),每天留时间复盘错题与追问——面试不是考背诵,而是考你被连续追问三层之后还在不在线。

八、每条趋势的“依据强度”速查表

这张表是给“会怀疑”的读者的:哪些结论证据比较扎实,哪些是我的推断。

结论依据强度局限
MySQL / Redis / Java 基础仍是第一梯队JavaGuide 重点总结明确排序;牛客多场面经均出现强JavaGuide 是单一作者观点,牛客为个人面经
并发在中大厂更深,虚拟线程出现在中高级追问JavaGuide;牛客一场 5 年经验面经;JEP 444 / 491中虚拟线程的面经证据只有个别;JEP 是事实而非面试频率
AI 应用成为独立题块牛客多场;小林、卡码、GitHub 题库;JavaGuide 项目指南中题库存在“为卖课 / 引流”的可能,且“大厂真题”无法逐条验证
可观测性与线上排查在中高级更受重视牛客多场追问;JavaGuide 计划有专门阶段;OTel 文档中偏弱OTel 文档只证明术语,不证明面试频率;面经样本小
系统设计权重随年限上升JavaGuide 计划;面经中的设计题;卡码的 Agent 系统设计中缺少系统的分年限统计,含较多我的推断
算法要求看公司JavaGuide 明确写字节与阿里的差异;牛客手撕题中公司风格会变,且各团队不同
行情:高端坚挺、普通略降两份 2026 届校招薪资报告中偏弱样本来自特定社群,偏校招,不代表社招和全行业

九、给三类读者的“最后一页”

  • 🌱 初级:别被“AI 时代”吓到,先把 MySQL / Redis / Java / 手撕做到熟练,再花一点时间做个 RAG Demo 当亮点。
  • 🌿 中级:你的机会窗口在“底层机制 + 线上排查 + 量化项目”,加上一点 JDK 21 与 AI 应用的“为什么这么选”。
  • 🌳 高级:面试是在验证你能不能“负责一个系统”:设计、治理、复盘、成本、安全、团队。把这些讲成故事,比多背十道八股有用。

还有一个提醒:趋势会变,面试官问题背后的逻辑不变——它解决什么问题、边界在哪、出错怎么办、代价是什么。我会在一年后回来,用新的面经和资料对着这篇文章逐条打勾或改错。

一句话备忘:基本盘(MySQL/Redis/Java/并发)仍是第一梯队;新增的是 AI 应用工程化、虚拟线程(标注 JDK 版本)、可观测性与线上排查;年限越高越考系统设计与治理,算法看公司;行情分化,谈判看总包结构与筹码;每条结论都要知道依据与局限。

参考资料

— 感谢读到这里 —发现错误,或想补充?告诉我 →
TURN KNOWLEDGE INTO SOMETHING REAL

有想法,也想把它做出来?

从技术方案到上线交付,聊聊你的下一个项目。

聊聊需求

一起聊聊

搜索文章

输入关键词,按标题和摘要即时筛选。

浏览分类文章归档

阅读设置

字号
行宽
专注模式

专注模式会隐藏页头与侧栏,只留正文。设置保存在当前浏览器。

稍后阅读

保存在当前浏览器,留给下一次安静阅读。

总浏览 -- 次 · 总访客 -- 人 · 今日浏览 -- 次 · 今日访客 -- 人