简历技术栈全量学习指南

朱宏晖 — 简历技术栈全量学习指南

本文档基于你简历中出现的所有技术栈,按学习优先级排列,每个技术附上官方文档、推荐教程和实战项目。 定位:假设你只会写 Java CRUD,从零开始补齐简历上每一个技术点。


目录


第一阶段:Java 核心内功(面试必问)

这是 CRUD 开发者最容易被问穿的层面。简历写了“JUC并发编程、JVM调优、G1/ZGC”,面试官 100% 会深挖。

1.1 Java 并发编程(JUC)

你简历中的使用场景: CompletableFuture 异步计算流水线、双层检测锁(DCL)、线程池

必须掌握的知识点:

知识点 为什么重要 你简历哪里用到了
线程池(ThreadPoolExecutor) 面试必问参数含义 DAG 引擎异步计算
synchronized vs ReentrantLock 锁机制基础理解 指令状态机并发控制
volatile 关键字 可见性 + 禁止重排序 DCL 双层检测锁
CAS 与 AQS 并发框架底层原理 面试深挖必问
CompletableFuture 简历直接写了 DAG 指标计算流水线
ConcurrentHashMap 线程安全 Map 面试必问 JDK 7 vs 8 区别
ThreadLocal 线程隔离 SkyWalking 链路追踪原理

官方文档 & 学习资源:

资源 链接 说明
《Java 并发编程实战》 书籍 国外经典,理论+实践
《Java 并发编程的艺术》 书籍 国人写的,适合面试
尚硅谷 JUC 教程 https://www.bilibili.com/video/BV1Kw411Z7dF 短精新,重点看 AQS
黑马 JUC 教程 https://www.bilibili.com/video/BV16J411h7Rd 详细全面,适合零基础
Java 并发知识点总结 https://github.com/CL0610/Java-concurrency GitHub 开源笔记
Java 官方 JUC 文档 https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/package-summary.html API 参考

动手练习:

# 练习 1:手写一个简易线程池
# 练习 2:用 CompletableFuture 实现并行调用 3 个接口并汇总结果
# 练习 3:用 volatile + synchronized 实现 DCL 单例模式
# 练习 4:用 ConcurrentHashMap + AtomicLong 实现一个简易计数器

1.2 JVM 调优

你简历中的使用场景: “JVM调优、G1/ZGC”

必须掌握的知识点:

知识点 为什么重要
JVM 内存结构(堆/栈/方法区/元空间) 面试第一问
垃圾回收算法(标记清除/复制/标记整理) GC 基础
垃圾回收器(CMS/G1/ZGC) 简历直接写了 G1/ZGC
GC 日志分析 实际调优用得到
JVM 参数调优(-Xms/-Xmx/-XX) 线上问题排查
类加载机制(双亲委派) 面试高频
内存泄漏排查 OOM 场景

官方文档 & 学习资源:

资源 链接 说明
《深入理解 Java 虚拟机(第三版)》 书籍 JVM 神书,必读
尚硅谷宋红康 JVM 教程 https://www.bilibili.com/video/BV1PJ411n7xZ 50+手绘图解,非常全面
JVM 底层原理知识总结 https://github.com/doocs/jvm GitHub 开源
Oracle JVM 官方文档 https://docs.oracle.com/en/java/javase/21/gctuning/ G1/ZGC 调优指南
阿里云 JVM 实战 https://developer.aliyun.com/graph/java/point/64 实际调优案例
Arthas 官方文档 https://arthas.aliyun.com/ 线上诊断工具,你简历写了

动手练习:

# 练习 1:写一段代码制造 OOM,用 jmap/jstack 分析
# 练习 2:用 Arthas 在线诊断一个运行中的 Java 进程
# 练习 3:配置 G1 参数(-XX:+UseG1GC -XX:MaxGCPauseMillis=200)并观察 GC 日志
# 练习 4:用 VisualVM 监控本地 JVM 内存变化

1.3 Java 基础高频考点

面试中常被深挖的基础知识:

知识点 学习资源
HashMap 底层原理(数组+链表+红黑树) 《Java 编程的逻辑》或 B 站搜 “HashMap 源码”
String 不可变性 JavaGuide: https://javaguide.cn/
泛型与类型擦除 Oracle 官方教程: https://docs.oracle.com/javase/tutorial/java/generics/
异常体系 JavaGuide
反射与动态代理 《深入理解 Java 虚拟机》第 7 章
Java 8 Stream API https://www.baeldung.com/java-8-streams

第二阶段:开发框架(吃饭的家伙)

简历每个项目都在用,必须烂熟于心。

2.1 Spring Boot

你简历中的使用场景: 所有项目的核心框架

必须掌握的知识点:

知识点 学习资源
自动配置原理(@EnableAutoConfiguration) 官方文档: https://docs.spring.io/spring-boot/docs/current/reference/html/
Starter 机制 https://spring.io/guides/gs/spring-boot/
@Conditional 条件装配 Baeldung: https://www.baeldung.com/spring-conditional-annotations
事务管理(@Transactional) 官方文档: https://docs.spring.io/spring-framework/reference/data-access/transaction.html
AOP 原理(JDK 动态代理 vs CGLIB) https://www.baeldung.com/spring-aop
全局异常处理(@ControllerAdvice) https://www.baeldung.com/exception-handling-for-spring-with-rest
配置文件(YAML/多环境) 官方文档第 2 章

推荐视频:


2.2 Spring Cloud Alibaba

你简历中的使用场景: 零碳能源云平台微服务底座(Nacos + Sentinel)

必须掌握的知识点:

组件 知识点 官方文档
Nacos 服务注册发现 + 动态配置 https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html
Sentinel 流控/熔断/降级 https://sentinelguard.io/zh-cn/docs/introduction.html
Dubbo RPC 服务调用 https://dubbo.apache.org/zh/docs3-v2/java-sdk/quick-start/
Seata 分布式事务(了解即可) https://seata.apache.org/zh-cn/docs/overview/what-is-seata
Gateway 微服务网关 https://sentinelguard.io/zh-cn/docs/gateway/flow-control.html

推荐视频:

动手项目:

搭建一个包含 3 个微服务的 demo:
- user-service(用户服务)
- order-service(订单服务)
- gateway(网关)

要求:
1. Nacos 注册发现
2. Sentinel 对 order-service 做限流
3. Gateway 做路由转发
4. Dubbo 做 user-service 与 order-service 的 RPC 调用

2.3 MyBatis-Plus

你简历中的使用场景: 所有项目的 ORM 层

必须掌握的知识点:

知识点 官方文档
BaseMapper 通用 CRUD https://baomidou.com/pages/498161/
条件构造器(QueryWrapper/LambdaQueryWrapper) https://baomidou.com/pages/10b803/
分页插件 https://baomidou.com/pages/97715a/
@BatchSize 解决 N+1 查询 简历直接写了,面试必问
逻辑删除 https://baomidou.com/pages/6b03c6/
自动填充 https://baomidou.com/pages/4c1f4e/

第三阶段:数据库与缓存(性能调优核心)

简历最核心的亮点就是 SQL 性能调优,面试会拿执行计划问你。

3.1 MySQL

必须掌握的知识点:

知识点 学习资源
InnoDB 存储引擎 《MySQL 是怎样运行的》书籍
索引原理(B+ 树) https://dev.mysql.com/doc/refman/8.0/en/innodb-index-types.html
最左前缀原则 简历直接写了,必须能画图解释
MVCC(多版本并发控制) https://dev.mysql.com/doc/refman/8.0/en/innodb-multi-versioning.html
事务隔离级别 + MVCC 《MySQL 实战 45 讲》极客时间
慢查询治理 https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html
EXPLAIN 执行计划 https://dev.mysql.com/doc/refman/8.0/en/explain.html
主从复制 + 读写分离 https://dev.mysql.com/doc/refman/8.0/en/replication.html

推荐资源:


3.2 Redis

你简历中的使用场景: 多级缓存、Lua 预减库存、Sorted Set Feed 流、Bitmap 去重、分布式锁

必须掌握的知识点:

知识点 你简历哪里用到了 学习资源
5 种基本数据结构 缓存基础 https://redis.io/docs/data-types/
Sorted Set Feed 流时间排序 https://redis.io/docs/data-types/sorted-sets/
Bitmap 点赞/收藏去重 https://redis.io/docs/data-types/bitmaps/
Lua 脚本 预减库存防超卖 https://redis.io/docs/manual/programmability/eval/
缓存雪崩/穿透/击穿 简历直接写了 https://github.com/CyC2018/CS-Notes/blob/master/notes/Redis.md
分布式锁(Redisson) 简历技能清单写了 https://github.com/redisson/redisson/wiki
多级缓存(Caffeine + Redis) 零碳平台 L1+L2 https://github.com/ben-manes/caffeine/wiki
Redis 持久化(RDB/AOF) 面试必问 https://redis.io/docs/management/persistence/

推荐资源:

动手项目(秒杀系统):

实现一个简易秒杀系统:
1. Redis + Lua 预减库存
2. DCL + 热点 Key 打散解决缓存击穿
3. RocketMQ 异步下单
4. Redisson 分布式锁防超卖

参考项目:https://github.com/qiurunze123/miaosha

3.3 Oracle

你简历中的使用场景: 神州数码项目原有数据库

学习资源:

资源 链接
Oracle 官方文档 https://docs.oracle.com/en/database/oracle/oracle-database/
Oracle SQL 调优指南 https://docs.oracle.com/en/database/oracle/oracle-database/21/tgsql/
存储过程基础 https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpnc/

重点了解:

  • PL/SQL 存储过程(你简历提到“原 Oracle 存储过程中的拆分规则”)
  • Oracle 索引与执行计划(EXPLAIN PLAN FOR
  • Oracle 与 MySQL 语法差异

3.4 GaussDB(华为高斯数据库)

你简历中的使用场景: 信创改造 Oracle→GaussDB 迁移

学习资源:

资源 链接
GaussDB 官方文档 https://support.huaweicloud.com/gaussdb/
GaussDB 开发者指南 https://support.huaweicloud.com/devg-gaussdb/
GaussDB 分布式架构 https://support.huaweicloud.com/productdesc-gaussdb/

重点了解:

  • 分布式架构(CN 协调节点 / DN 数据节点)
  • 分布键设置与数据倾斜
  • Oracle 兼容性(数据类型映射、隐式转换差异)
  • ANALYZE 统计信息 + Hint 执行计划干预

3.5 PostgreSQL + pgvector

你简历中的使用场景: RAG 系统向量存储

学习资源:

资源 链接
PostgreSQL 官方教程 https://www.postgresql.org/docs/current/tutorial.html
pgvector GitHub https://github.com/pgvector/pgvector
pgvector 使用文档 https://github.com/pgvector/pgvector#usage

重点掌握:

-- 启用 pgvector 扩展
CREATE EXTENSION IF NOT EXISTS vector;

-- 创建带向量列的表
CREATE TABLE documents (
    id SERIAL PRIMARY KEY,
    content TEXT,
    embedding VECTOR(1536)
);

-- 余弦相似度检索(你简历写了这个)
SELECT * FROM documents
ORDER BY embedding <=> '[0.1, 0.2, ...]'  -- 余弦距离
LIMIT 5;

-- 创建向量索引加速检索
CREATE INDEX ON documents USING ivfflat (embedding vector_cosine_ops);

3.6 TDengine(时序数据库)

你简历中的使用场景: 零碳平台设备数据存储,“写入性能提升10倍,存储成本降低60%”

学习资源:

资源 链接
TDengine 官方文档 https://docs.taosdata.com/
TDengine 快速入门 https://docs.taosdata.com/get-started/
TDengine Java 连接器 https://docs.taosdata.com/connector/java/

3.7 Apache Doris(OLAP 引擎)

你简历中的使用场景: 零碳平台指标聚合预计算,“大屏接口响应从秒级降至200ms”

学习资源:

资源 链接
Doris 官方文档 https://doris.apache.org/docs/
Doris 快速入门 https://doris.apache.org/docs/install/
Doris 极客教程 https://doris.apache.org/docs/best-practice/

第四阶段:中间件(高并发三剑客)

简历技能清单写了 RocketMQ/Kafka/RabbitMQ,但项目只用了 RocketMQ。面试官会问“为什么选 RocketMQ 而不是 Kafka”。

4.1 RocketMQ

你简历中的使用场景: 事务消息保障分布式事务最终一致性

必须掌握的知识点:

知识点 学习资源
消息模型(Topic/Tag/Group) https://rocketmq.apache.org/zh/docs/
事务消息原理 简历直接写了,面试必问原理
顺序消息 简历技能清单写了
消息幂等 简历写了幂等键设计
消息积压处理 面试高频
死信队列 https://rocketmq.apache.org/zh/docs/

官方文档: https://rocketmq.apache.org/zh/docs/

事务消息流程图(面试要能画出来):

1. Producer 发送半消息到 Broker
2. Broker 存储半消息后返回确认
3. Producer 执行本地事务
4. Producer 提交二次确认(Commit/Rollback)
5. 如果超时未确认,Broker 回查 Producer 本地事务状态
6. Commit → 消息对 Consumer 可见;Rollback → 删除消息

4.2 Kafka(对比学习)

学习资源:

重点对比:

维度 RocketMQ Kafka
事务消息 原生支持 仅 Producer 事务
延迟消息 原生支持 不支持
消息回溯 按时间 按 Offset
吞吐量 万级/秒 百万级/秒
适用场景 业务消息 日志/大数据

4.3 RabbitMQ(了解即可)

学习资源: https://www.rabbitmq.com/documentation.html


4.4 ElasticSearch

你简历中的使用场景: 社区平台全文检索、内容审核、敏感词过滤

学习资源:

资源 链接
ES 官方文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/
ES Java API https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/
黑马 ES 教程 https://www.bilibili.com/video/BV1Lb4y1A7Hq
《Elasticsearch 权威指南》 https://www.elastic.co/guide/cn/elasticsearch/guide/current/

4.5 Redisson 分布式锁

学习资源:


第五阶段:大数据(项目一&三核心)

简历写了 Spark + HBase,面试官一定会追问原理。

5.1 Apache Spark

你简历中的使用场景: 资金拆分逻辑重构(Spark SQL 替代 Oracle 存储过程)

必须掌握的知识点:

知识点 为什么重要 学习资源
Spark SQL 简历直接写了 https://spark.apache.org/docs/latest/sql-programming-guide.html
RDD/DataFrame 核心抽象 https://spark.apache.org/docs/latest/rdd-programming-guide.html
Shuffle 原理 简历提到“避免 Shuffle 数据倾斜” https://spark.apache.org/docs/latest/tuning.html
数据分区策略 简历直接写了 https://spark.apache.org/docs/latest/quick-start.html
Spark 集群架构 面试基础 https://spark.apache.org/docs/latest/cluster-overview.html

官方文档: https://spark.apache.org/docs/latest/

动手练习:

# 1. 本地安装 Spark(standalone 模式)
# 2. 用 Spark SQL 读取一个 CSV 文件做聚合统计
# 3. 故意制造数据倾斜(大量相同 Key),然后用 salting(加盐)解决
# 4. 对比相同 SQL 在 Spark 和 MySQL 中的执行计划差异

5.2 Apache HBase

你简历中的使用场景: 拆分中间结果存储、RowKey 设计、二级索引

必须掌握的知识点:

知识点 学习资源
LSM 树原理 简历直接写了,必须能解释
RowKey 设计 简历直接写了(业务日期+指令ID)
二级索引 简历直接写了
HBase 架构(RegionServer/HFile) https://hbase.apache.org/book.html
写入流程(WAL → MemStore → HFile) 面试必问

官方文档: https://hbase.apache.org/book.html

重点理解:

LSM 树为什么写入快?
→ 数据先写内存(MemStore),达到阈值后批量刷盘(Flush)为 HFile
→ 相比 B+ 树的随机写,LSM 是顺序写,性能高出一个数量级
→ 这就是你简历里"利用 HBase 的 LSM 树结构提升大批量写入性能"的原理

RowKey 设计为什么重要?
→ HBase 按 RowKey 字典序存储,相近的 RowKey 存在同一个 Region
→ 设计前缀(业务日期+指令ID)支持范围扫描
→ 避免 Hotspoting(热点问题):不要用时间戳作为唯一前缀

第六阶段:AI 应用开发与 AI 编程(简历差异化亮点)

这是简历最大的差异化优势。面试官会重点考察三件事:

  1. 你“真的懂 RAG 还是只是调 API”
  2. 你“真的懂 AI Agent 还是只用了 Function Calling”
  3. 你“用 Cursor/DeepSeek 写代码有没有工程化约束,还是无脑让 AI 生成”

6.1 LangChain4j

你简历中的使用场景: RAG 系统(文档解析、向量检索、对话接口、Function Calling)

必须掌握的知识点:

知识点 你简历哪里用到了 学习资源
AiServices 接口 RAG 对话接口 https://docs.langchain4j.dev/tutorials/ai-services
RAG 全流程 项目二核心 https://docs.langchain4j.dev/tutorials/rag
Function Calling(@Tool)→ AI Agent 编排 简历直接写了,Agent 自主规划任务 https://docs.langchain4j.dev/tutorials/tools
Streaming(SSE 流式返回) 简历直接写了 https://docs.langchain4j.dev/tutorials/ai-services#streaming
Embedding Model 向量化 https://docs.langchain4j.dev/tutorials/embeddings
Chat Memory(对话历史)→ Agent 会话状态 Redis 多轮上下文 + Agent 多轮工具选择 https://docs.langchain4j.dev/tutorials/chat-memory
Document Loader/Spitter 文档分块 https://docs.langchain4j.dev/tutorials/rag#document-loader

官方文档(最重要): https://docs.langchain4j.dev/

推荐教程:

手把手实战项目(强烈推荐):

项目:ai-code-helper(程序员鱼皮)
GitHub: https://github.com/xuejiale929/ai-code-helper

技术栈:Spring Boot 3.5 + Java 21 + LangChain4j
覆盖能力:RAG 全链路 + Tool Calling + MCP + SSE 流式
学习路径:
1. Fork 项目 → 本地跑通
2. 阅读源码,理解 RAG 流程
3. 改造为"资产托管智能助手"(换文档、换工具)
4. 写进简历作为 PoC 项目

6.2 Prompt 工程

你简历中的使用场景: “System Prompt 约束回答范围”、“不知道保护机制”

学习资源:

资源 链接
OpenAI Prompt 工程指南 https://platform.openai.com/docs/guides/prompt-engineering
LangChain4j System Message https://docs.langchain4j.dev/tutorials/ai-services#system-message
DeepSeek API 文档 https://platform.deepseek.com/api-docs

重点理解(面试会问):

1. System Prompt 为什么要约束回答范围?
   → 防止 LLM 幻觉(hallucination),确保回答基于检索到的文档

2. "不知道"保护机制怎么实现?
   → 检索结果相似度低于阈值(如 0.75)时,直接返回"未找到相关信息"
   → 避免低质量检索结果被 LLM 强行编造答案

3. 文档分块为什么要 500-800 字 + 滑动窗口?
   → 太短:上下文不完整,检索到片段无法理解
   → 太长:向量稀释,检索精度下降
   → 滑动窗口(overlap):保证分块边界的内容不会丢失上下文

6.3 Apache Tika

你简历中的使用场景: “基于 Apache Tika 实现文本内容提取与清洗”

学习资源:

资源 链接
Tika 官方文档 https://tika.apache.org/
Tika Java API https://tika.apache.org/2.9.0/api/
LangChain4j 文档加载 https://docs.langchain4j.dev/tutorials/rag#document-loader

6.4 向量数据库与 Embedding

必须理解的概念:

概念 说明 学习资源
Embedding 将文本转为高维向量 https://platform.openai.com/docs/guides/embeddings
余弦相似度 衡量向量相似程度 https://en.wikipedia.org/wiki/Cosine_similarity
Top-K 检索 召回最相关的 K 个文档片段 简历写了 Top-5
IVFFlat 索引 向量近似最近邻索引 https://github.com/pgvector/pgvector#indexing

6.5 AI Agent 编排(简历项目二核心升级)

简历已将 Function Calling 升级为 AI Agent 工具编排,面试官会问“Agent 和普通 Function Calling 有什么区别”“Agent 怎么做多步任务规划”。

必须理解的概念:

概念 说明 你简历哪里用到了
Function Calling AI 判断意图 → 调用单个工具 → 拿结果 → 继续生成 LangChain4j @Tool
AI Agent Agent 自主规划任务 → 拆解子任务 → 动态选择工具 → 多轮执行 → 汇总结果 项目二核心升级
ReAct 模式 Reason + Act:思考→行动→观察→再思考的循环 Agent 任务规划
工具调用失败重试 工具异常时 Agent 降级或重试,保证多轮任务可恢复 简历直接写了
Agent 会话状态 多轮对话中保持工具调用上下文,支持动态工具选择 Redis TTL 30 分钟

Function Calling vs AI Agent 的区别(面试重点):

Function Calling(单轮):
  用户问"查一下我的Jira任务"
  → AI 判断需要调用 Jira 工具
  → 调用 @Tool jiraQuery(userId)
  → 拿到结果 → 生成回答
  → 结束

AI Agent(多轮规划):
  用户问"帮我查这周的Jira任务,顺便看看项目二进度"
  → Agent 规划:
     子任务1:调用 Jira 工具查本周任务
     子任务2:调用指令进度追踪工具查项目二状态
  → 执行子任务1 → 拿到结果 → 观察
  → 执行子任务2 → 工具调用失败 → 降级返回默认提示 → 观察
  → 汇总两个子任务结果 → 生成综合回答
  → 全程通过 Redis 维持会话状态,支持后续追问

学习资源:

资源 链接 说明
LangChain4j Tools 文档 https://docs.langchain4j.dev/tutorials/tools @Tool 注解 + Agent 编排
LangChain4j AI Services https://docs.langchain4j.dev/tutorials/ai-services AiServices 接口封装 Agent
ReAct 论文解读 https://arxiv.org/abs/2210.03629 Reason+Act 范式原理
DeepSeek Function Calling https://platform.deepseek.com/api-docs DeepSeek API 工具调用

重点理解(面试会问):

1. Agent 和 Function Calling 的区别?
   → Function Calling 是单次工具调用(AI 判断要不要调工具)
   → Agent 是多步任务规划(AI 自主拆解任务、动态选工具、多轮执行)
   → Agent 底层可以用 Function Calling 实现,但多了"规划-执行-观察"的循环

2. Agent 多轮对话怎么保持状态?
   → Redis 存对话历史(TTL 30 分钟)
   → 每轮把上一步的工具调用结果作为上下文传给 LLM
   → Agent 根据历史上下文决定下一步动作

3. 工具调用失败怎么办?
   → 重试:同一工具重试 N 次
   → 降级:返回默认提示或换一个工具
   → 人工兜底:连续失败转人工处理
   → 简历写了"工具调用失败重试/降级策略",面试要能说清

6.6 AI 编程工具与 Skills 规则工程(简历新增亮点)

简历新增了 Cursor、Claude Code、DeepSeek 等 AI 编程工具的使用经验,以及编写 Skills 规则文件约束 AI 输出质量的实践。面试官会问“你怎么保证 AI 生成的代码质量”“Skills 规则具体写了什么”。

你简历中的使用场景:

  • 神州数码工作经历:Cursor + DeepSeek 辅助代码生成与优化,编写 Skills 规则文件约束 AI 编码行为
  • 项目一:Cursor + DeepSeek 辅助生成状态机与交收匹配核心代码,Skills 约束资金类操作强制加锁、金额校验不可省略
  • 技能清单第 8 条:熟练使用 Cursor、Claude Code、DeepSeek,编写 Skills 规则文件约束 AI 输出质量

必须掌握的知识点:

知识点 为什么重要 学习资源
Cursor 基本使用 简历直接写了 https://docs.cursor.com/
Cursor Rules(.cursor/rules) 约束 AI 编码行为的核心机制 https://docs.cursor.com/context/rules
Claude Code 使用 简历直接写了 https://docs.anthropic.com/en/docs/claude-code
Claude Code Skills(.claude/skills) 约束 AI 输出的规则文件 https://docs.anthropic.com/en/docs/claude-code/skills
DeepSeek API 简历项目二技术栈 https://platform.deepseek.com/api-docs
Prompt 工程约束代码质量 Skills 规则的本质 见 6.2 Prompt 工程

Skills 规则文件是什么?(面试核心)

Skills 规则文件 = 给 AI 编程助手设定的"编码规范 + 安全红线"

类似团队 Code Review 的 check list,但写成 AI 能理解的规则文件,
让 AI 在生成代码时自动遵守。

常见的规则维度:
  1. 代码规范:命名风格、注释要求、包结构
  2. 安全红线:资金类操作必须加锁、金额必须校验、SQL 必须参数化
  3. 异常处理:不允许吞异常、必须记录日志、必须返回统一错误码
  4. 事务边界:哪些方法必须 @Transactional、传播行为怎么选
  5. 禁止事项:不允许用 Executors 创建线程池、不允许用 new Date()

Cursor Rules 示例(你简历项目一的 Skills 规则):

# .cursor/rules/custody-system.md

## 项目背景
资产托管指令管理系统,涉及资金清算与证券交收,对数据准确性要求极高。

## 编码规范
- Service 方法名使用动词开头:create/settle/cancel/query
- DTO 命名:XxxCreateDTO / XxxQueryDTO / XxxVO
- 所有金额字段使用 BigDecimal,禁止使用 double/float

## 安全红线(必须遵守)
- 资金类操作(扣款/入账/清算)必须加分布式锁(Redisson)
- 金额校验不可省略:金额必须 > 0,精度不超过 2 位小数
- SQL 必须使用参数化查询(MyBatis #{}),禁止字符串拼接 ${}
- 状态机变更必须走统一入口,禁止直接 update 状态字段

## 异常处理
- 不允许 catch Exception 后不处理(吞异常)
- 业务异常抛 BusinessException,系统异常抛 RuntimeException
- 所有异常必须记录日志(包含指令ID、操作人、时间戳)

## 事务边界
- 指令创建、交收匹配方法必须加 @Transactional
- 操作日志使用 REQUIRES_NEW 传播行为(主业务失败也要留痕)
- 批量导入使用 NESTED 传播行为(单条失败不影响整体)

Claude Code Skills 示例:

# .claude/skills/code-review.md

## 代码审查规则
当生成或修改代码时,必须检查:
1. 是否有资源泄漏(流未关闭、连接未释放)
2. 是否有并发安全问题(共享可变状态未同步)
3. 是否有 N+1 查询问题(循环内查数据库)
4. 是否有硬编码(魔法数字、写死的 URL/IP)
5. 异常处理是否完整(try-catch-finally / try-with-resources)

## Java 项目专项
- 线程池必须用 ThreadPoolExecutor 手动创建,禁止 Executors
- 日期处理用 java.time(LocalDateTime),禁止 new Date() / Calendar
- 集合判空用 CollectionUtils.isEmpty(),禁止 null != list && !list.isEmpty()

重点理解(面试会问):

1. 为什么要写 Skills 规则文件?
   → AI 生成的代码如果不加约束,可能:
     - 不符合项目编码规范(命名风格混乱)
     - 忽略安全红线(资金操作没加锁、SQL 拼接)
     - 异常处理不完整(吞异常、不记日志)
   → Skills 规则 = 把团队的 Code Review 标准固化成 AI 能理解的规则
   → AI 生成代码时自动遵守,减少人工 review 成本

2. Skills 规则和 System Prompt 有什么区别?
   → System Prompt 约束 LLM 的回答范围(如"只基于文档回答")
   → Skills 规则约束 AI 的编码行为(如"资金操作必须加锁")
   → 两者互补:System Prompt 管"说什么",Skills 规则管"怎么写代码"

3. AI 生成的代码直接合入吗?
   → 不直接合入。流程是:
     AI 生成代码 → 人工评审 → 修改 → 测试 → 合入
   → Skills 规则减少但不消除人工审查的必要性
   → 简历写了"人工评审后合入",面试要强调这一点

动手练习:

# 练习 1:在 Cursor 中创建 .cursor/rules 文件,约束一个 Spring Boot 项目的编码规范
# 练习 2:用 Cursor + DeepSeek 生成一段状态机代码,观察有无 Skills 规则时的输出差异
# 练习 3:在 Claude Code 中创建 .claude/skills 文件,约束代码审查规则
# 练习 4:对比 Cursor Rules 和 Claude Code Skills 的语法差异

第七阶段:云原生与 DevOps(工程化能力)

7.1 Docker

你简历中的使用场景: 12 个微服务容器化

学习资源:

资源 链接
Docker 官方文档 https://docs.docker.com/
Docker 从入门到实践 https://yeasy.gitbook.io/docker_practice/
Dockerfile 最佳实践 https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

必须掌握:

# 你要能写出一个标准的 Spring Boot Dockerfile
FROM openjdk:17-jdk-slim
VOLUME /tmp
COPY target/app.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar", "--spring.profiles.active=prod"]

7.2 Kubernetes(K8s)

你简历中的使用场景: Deployment/HPA/Service

学习资源:

资源 链接
K8s 官方文档 https://kubernetes.io/zh-cn/docs/
K8s 教程(官网互动式) https://kubernetes.io/zh-cn/docs/tutorials/
《Kubernetes in Action》 书籍
K8s 中文社区 https://www.kubernetes.org.cn/

必须掌握(简历写了的):

# Deployment — 你简历直接写了
apiVersion: apps/v1
kind: Deployment
metadata:
  name: order-service
spec:
  replicas: 3
  template:
    spec:
      containers:
      - name: order-service
        image: order-service:v1
        resources:
          requests:
            cpu: 250m
            memory: 512Mi
          limits:
            cpu: 500m
            memory: 1Gi

# HPA — 你简历直接写了
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: order-service-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: order-service
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

# Service — 你简历直接写了
apiVersion: v1
kind: Service
metadata:
  name: order-service
spec:
  selector:
    app: order-service
  ports:
  - port: 8080
    targetPort: 8080

7.3 Jenkins CI/CD

你简历中的使用场景: “代码提交→单元测试→镜像构建→K8s部署”

学习资源:

资源 链接
Jenkins 官方文档 https://www.jenkins.io/doc/
Jenkins Pipeline 语法 https://www.jenkins.io/doc/book/pipeline/
Jenkins + K8s 实战 https://www.jenkins.io/doc/book/pipeline/kubernetes/

7.4 SonarQube

学习资源: https://docs.sonarsource.com/sonarqube/latest/


第八阶段:可观测性(线上排障能力)

8.1 SkyWalking

你简历中的使用场景: 全链路追踪、自定义业务指标埋点

学习资源:

资源 链接
SkyWalking 官方文档 https://skywalking.apache.org/docs/
SkyWalking Java Agent https://skywalking.apache.org/docs/java-agent/latest/en/setup/
SkyWalking 架构原理 https://skywalking.apache.org/docs/main/latest/en/concepts-and-design/

必须理解(面试会问原理):

SkyWalking 是怎么做全链路追踪的?
→ 字节码增强:Java Agent 在类加载时注入追踪代码
→ TraceId 通过 ThreadLocal 在同线程传递
→ 跨服务通过 HTTP Header(sw8)传递 TraceId
→ 上报到 OAP Server → 存入 Elasticsearch → UI 展示

8.2 Prometheus + Grafana

你简历中的使用场景: 监控告警体系、自定义业务指标

学习资源:

资源 链接
Prometheus 官方文档 https://prometheus.io/docs/introduction/overview/
Grafana 官方文档 https://grafana.com/docs/
Spring Boot Actuator + Prometheus https://prometheus.io/docs/instrumenting/exporters/
Micrometer(Java 指标埋点) https://micrometer.io/docs

8.3 Arthas(阿里线上诊断工具)

你简历中的使用场景: 技能清单写了

学习资源:

资源 链接
Arthas 官方文档 https://arthas.aliyun.com/
Arthas 命令列表 https://arthas.aliyun.com/doc/commands.html
Arthas 在线教程 https://arthas.aliyun.com/doc/arthas-tutorials.html

必须会的命令:

arthas > dashboard          # 总览线程/内存/GC 状态
arthas > thread -n 3        # 查看最忙的 3 个线程
arthas > jad com.xxx.Service # 反编译类,看运行时代码
arthas > watch com.xxx.Service method '{params, returnObj}' # 观察方法入参和返回值
arthas > trace com.xxx.Service method  # 查看方法调用链路耗时
arthas > profiler start     # 生成火焰图

第九阶段:前端基础(全栈协作)

9.1 Vue.js + Element UI

你简历中的使用场景: RAG 系统前端、前后端分离

学习资源:

资源 链接
Vue3 官方文档 https://cn.vuejs.org/guide/
Element Plus https://element-plus.org/zh-CN/
Vue3 教程 https://www.bilibili.com/video/BV1nY411a7Lq

掌握程度: 能看懂前端代码、能写简单页面即可,不需要精通。


实战项目推荐清单

按优先级排列,建议至少完成前 3 个。

项目 1:AI 知识库助手(最高优先级)

项目名:ai-code-helper
GitHub: https://github.com/xuejiale929/ai-code-helper
作者:程序员鱼皮

技术栈:Spring Boot 3.5 + Java 21 + LangChain4j + PostgreSQL(pgvector)
覆盖:RAG 全链路 + Function Calling + AI Agent 编排 + MCP + SSE 流式

学习目标:
1. Fork → 本地跑通(1天)
2. 阅读源码,理解 RAG 流程(2天)
3. 改造为"资产托管知识库助手"(3天)
4. 配置 Cursor Rules / Claude Code Skills 规则文件约束 AI 编码行为(1天)
5. 写进简历作为技术预研项目

为什么推荐:
- 代码规范好,适合学习工程化
- 覆盖你简历 RAG 项目所有技术点
- 社区活跃,有详细教程

项目 2:秒杀系统(高并发经典)

项目名:miaosha
GitHub: https://github.com/qiurunze123/miaosha

技术栈:Spring Boot + Redis + RocketMQ + RabbitMQ
覆盖:Redis Lua 预减库存、缓存击穿、分布式锁、消息队列

学习目标:
1. 理解高并发场景下的缓存策略
2. 掌握 Redis + Lua 原子操作
3. 理解消息队列在削峰填谷中的作用

为什么推荐:
- 覆盖你简历项目四的所有技术点
- 面试高频场景题

项目 3:Spring Cloud Alibaba 微服务实战

项目名:mall(mall-cloud)
GitHub: https://github.com/macrozheng/mall

技术栈:Spring Cloud Alibaba + Nacos + Sentinel + Gateway + Seata
覆盖:微服务全家桶

学习目标:
1. 理解微服务架构设计
2. 掌握 Nacos + Sentinel + Gateway 联动
3. 学习分布式事务(Seata)

为什么推荐:
- 覆盖你简历零碳平台的所有微服务技术
- macrozheng 的项目文档极其完善

项目 4:Chat2DB(AI 驱动数据库工具,源码学习)

项目名:Chat2DB
GitHub: https://github.com/CodePhiliaX/Chat2DB
Star: 24.8k+

技术栈:Java + Spring Boot + Vue + AI
覆盖:NL2SQL、AI 辅助 SQL 调优

学习目标:
1. 读源码学习 AI + 数据库的架构设计
2. 理解 NL2SQL 的实现原理
3. 可以贡献 PR 增加简历含金量

为什么推荐:
- 与你简历"SQL 性能调优"完美匹配
- 理解 AI 在数据库领域的应用

项目 5:Spark 实战练习

项目名:spark-learning
GitHub: https://github.com/lw-lin/Coursera-BigData

学习目标:
1. 本地搭建 Spark 环境
2. 用 Spark SQL 做数据分析
3. 理解 Shuffle 和数据倾斜
4. 模拟你简历中的"资金拆分逻辑"

面试高频考点速查表

按你简历中出现频率和面试被问概率排列。

Java 基础(100% 会问)

考点 一句话答案 深入学习
HashMap 原理 数组+链表+红黑树,阈值 8 转红黑树 看源码
ConcurrentHashMap JDK8 用 CAS + synchronized 对比 JDK7 分段锁
线程池参数 corePoolSize/maxPoolSize/queue/rejectHandler 手写线程池 demo
volatile 可见性 + 禁止重排序,不保证原子性 结合 DCL 理解
AQS CLH 队列 + state + 独占/共享模式 看 ReentrantLock 源码
ThreadLocal 线程隔离,内存泄漏用弱引用解决 理解 InheritableThreadLocal

JVM(90% 会问)

考点 一句话答案 深入学习
JVM 内存结构 堆/栈/方法区/程序计数器/本地方法栈 画图
G1 vs ZGC G1: Region 分代, 200ms 暂停; ZGC: 染色指针, <10ms 看官方调优文档
GC 算法 标记-清除/复制/标记-整理 理解适用场景
双亲委派 子加载器先委托父加载器 打破双亲委派的场景
OOM 排查 jmap dump → MAT 分析 实操

Spring(95% 会问)

考点 一句话答案
IOC 原理 反射 + 工厂模式 + 配置元数据
AOP 原理 JDK 动态代理(接口)/ CGLIB(类)
@Transactional 失效场景 自调用/非 public/异常被吞/传播级别错误
Spring Boot 自动配置 @EnableAutoConfiguration → spring.factories
Bean 生命周期 实例化→属性填充→初始化→使用→销毁

数据库(100% 会问)

考点 一句话答案
B+ 树 vs B 树 B+ 树非叶子不存数据,范围查询更快
最左前缀原则 联合索引 (a,b,c),能用 a / a,b / a,b,c,不能跳过 a
MVCC 读视图 + undo log + 版本链
事务隔离级别 读未提交/读已提交/可重复读/串行化
Redis 持久化 RDB 快照 / AOF 日志,各有优劣

AI/RAG/Agent(85% 会问,差异化重点)

考点 一句话答案
RAG 流程 文档加载→分块→向量化→存储→检索→增强→生成
为什么不用 LLM 直接回答 知识时效性 + 幻觉 + 数据隐私 + 成本
文档分块策略 按段落语义 + 滑动窗口(500-800字),兼顾精度和上下文
余弦相似度 衡量向量方向相似性,不关心长度
Function Calling AI 判断意图→调用工具→拿结果→继续生成
Agent vs Function Calling Function Calling 是单次工具调用,Agent 是多步任务规划+动态工具选择+多轮执行
Agent 会话状态管理 Redis 存对话历史(TTL 30分钟),每轮把工具调用结果作为上下文传给 LLM
工具调用失败处理 重试 N 次 → 降级返回默认提示 → 连续失败转人工
Prompt 约束 System Prompt 限定回答范围,防止幻觉
AI 编程工具(Cursor/DeepSeek) 辅助代码生成与优化,人工评审后合入
Skills 规则文件 约束 AI 编码行为(代码规范/安全红线/异常处理),类似 Code Review check list 固化成 AI 规则
Skills vs System Prompt System Prompt 管“说什么”,Skills 规则管“怎么写代码”,两者互补

中间件(85% 会问)

考点 一句话答案
RocketMQ 事务消息 半消息→本地事务→二次确认→回查机制
消息幂等 幂等键(userId+activityId+date)+ 去重表
Kafka vs RocketMQ Kafka 吞吐高但无事务消息,RocketMQ 适合业务
ES 倒排索引 分词→构建词项到文档的映射
分布式锁实现 Redis SETNX + 过期时间 / Redisson 看门狗续期

学习时间规划建议

假设每天学习 3-4 小时,总计约 12 周完成全部补齐。

周次 学习内容 产出
第 1-2 周 JUC 并发 + JVM 手写线程池、GC 日志分析
第 3-4 周 Spring Boot + Spring Cloud Alibaba 3 微服务 demo
第 5 周 MySQL 深入 + Redis 秒杀系统 demo
第 6 周 RocketMQ + ElasticSearch 秒杀系统集成 MQ
第 7 周 Spark + HBase 资金拆分模拟 demo
第 8-9 周 LangChain4j + RAG 全链路 + AI Agent + AI 编程工具 ai-code-helper 跑通+改造、配置 Cursor/Skills 规则
第 10 周 Docker + K8s 微服务容器化部署
第 11 周 SkyWalking + Prometheus 搭建可观测性体系
第 12 周 面试冲刺 + 查漏补缺 模拟面试

学习心法

  1. 先跑通再理解:每个技术先跑通一个 Hello World,再回头看原理
  2. 带着项目学:不要干看文档,边学边往你的项目里加
  3. 面试倒逼学习:列出面试高频题,逐个攻克
  4. 源码不是全部:看核心流程的源码即可,不要逐行读
  5. 量化你的学习:每学一个技术,记录“我学到了什么,能解决什么问题”

最后更新:2026-08-17