系统梳理 Java 后端核心知识,覆盖面试高频考点,助你从容应对技术面试。
本项目涵盖 Java 后端面试的九大核心模块:
| 模块 | 路径 | 核心内容 |
|---|---|---|
| 面试准备 | /interview/ | 简历优化、算法训练、系统设计、HR 面、面试复盘 |
| Java | /java/ | JVM、并发编程、集合框架、新特性 |
| 计算机基础 | /cs/ | 操作系统、计算机网络、数据结构与算法 |
| 数据库 | /database/ | MySQL(索引、事务、锁)、Redis(缓存、持久化、集群) |
| 常用框架 | /framework/ | Spring IoC/AOP、Spring Boot 自动装配、MyBatis |
| 分布式架构 | /distributed/ | CAP/BASE、分布式事务、一致性算法、分布式锁 |
| 高性能与高可用 | /high-performance/ | 性能优化、缓存策略、限流熔断、负载均衡 |
| 中间件 | /middleware/ | Kafka、RabbitMQ、RocketMQ、Dubbo、gRPC、Nacos、Gateway |
| 工程化与运维 | /devops/ | Docker、Kubernetes、CI/CD、监控与日志 |
npm installnpm run dev访问 http://localhost:3000 查看文档。
npm run buildnpm run deployJava 后端面试知识体系
│
├── Java 基础
│ ├── 基本类型与包装类
│ ├── String 不可变性与常量池
│ ├── 面向对象(封装、继承、多态)
│ └── 异常体系
│
├── 集合框架
│ ├── List(ArrayList、LinkedList、Vector、CopyOnWriteArrayList)
│ ├── Set(HashSet、LinkedHashSet、TreeSet)
│ ├── Map(HashMap、LinkedHashMap、TreeMap、ConcurrentHashMap)
│ └── Queue(PriorityQueue、ArrayDeque、BlockingQueue)
│
├── 并发编程
│ ├── 线程基础与状态转换
│ ├── 线程同步(synchronized、volatile、Lock)
│ ├── 线程通信(wait/notify、Condition、CountDownLatch)
│ ├── JUC 工具类(Atomic、ConcurrentHashMap)
│ ├── 线程池(ThreadPoolExecutor、Executors)
│ └── JMM 与 happens-before
│
├── JVM
│ ├── 运行时数据区(堆、栈、方法区)
│ ├── 垃圾回收(算法、收集器、GC 日志)
│ ├── 类加载机制与双亲委派
│ ├── 字节码与 JIT 编译
│ └── 性能调优与故障排查
│
├── MySQL
│ ├── 存储引擎(InnoDB vs MyISAM)
│ ├── 索引(B+ 树、Hash、联合索引、最左前缀)
│ ├── 事务(ACID、隔离级别、MVCC)
│ ├── 锁(行锁、表锁、意向锁、间隙锁)
│ ├── 日志(redo log、undo log、binlog)
│ └── 主从复制与读写分离
│
├── Redis
│ ├── 数据结构(SDS、QuickList、ziplist、skiplist)
│ ├── 持久化(RDB、AOF、混合持久化)
│ ├── 缓存策略(Cache Aside、穿透、击穿、雪崩)
│ ├── 集群(主从、哨兵、Cluster)
│ └── 线程模型与 I/O 多路复用
│
├── Spring
│ ├── IoC(Bean 生命周期、依赖注入、循环依赖)
│ ├── AOP(代理方式、通知类型、切面表达式)
│ ├── 事务(传播行为、失效场景)
│ └── 源码(refresh 流程、后置处理器)
│
├── 分布式
│ ├── CAP 与 BASE 理论
│ ├── 分布式事务(2PC、3PC、TCC、Saga)
│ ├── 一致性算法(Paxos、Raft、ZAB)
│ ├── 分布式锁(Redis、ZooKeeper、etcd)
│ └── 负载均衡与服务治理
│
└── 消息队列
├── Kafka(分区、副本、消费者组、可靠性)
├── RabbitMQ(Exchange、路由、死信队列)
└── RocketMQ(事务消息、延迟消息、顺序消息)
- 简历优化:STAR 法则、项目亮点提炼、技术栈分层
- 算法训练:双指针、哈希表、动态规划、回溯、二分查找
- 系统设计:Scale 估算、高并发架构、缓存策略、CAP 理论
- HR 面与谈薪:离职原因、薪资谈判、offer 评估
- HashMap JDK 7 vs JDK 8 实现差异
- synchronized 锁升级过程
- volatile 内存语义与内存屏障
- ThreadLocal 内存泄漏问题
- 线程池参数与工作流程
- JVM 内存模型与 GC 算法
- 类加载机制与双亲委派
- InnoDB vs MyISAM 核心差异
- B+ 树索引原理与最左前缀
- 事务隔离级别与 MVCC
- MySQL 锁类型与死锁避免
- 主从复制原理与延迟问题
- 分库分表策略与问题
- 5 种数据结构与底层编码
- RDB vs AOF 持久化对比
- 缓存穿透、击穿、雪崩解决方案
- Sentinel vs Cluster 选型
- Redis 分布式锁实现
- I/O 多路复用与事件处理
- CAP 理论及其应用
- 2PC/3PC/TCC 分布式事务方案
- Raft 共识算法核心流程
- 消息队列如何保证可靠性
- 限流算法与实现
- 熔断与降级策略
本项目的 interview/ 模块包含 68 篇文档,覆盖面试全流程:
| 文章 | 核心内容 |
|---|---|
| 一份优秀简历的标准 | 好简历的五个标准与常见问题 |
| 简历各模块写法 | 个人信息、技术栈、项目经历的正确写法 |
| STAR 法则 | 用 STAR 法则写出有说服力的项目描述 |
| 项目经历包装 | 让普通项目看起来有亮点 |
| 简历常见问题与修改建议 | 十大高频简历问题与解决方案 |
| 技术简历模板参考 | 各经验层级简历模板参考 |
| 文章 | 核心内容 |
|---|---|
| 双指针与滑动窗口 | 对撞指针、快慢指针、滑动窗口 |
| 哈希表高频题 | 两数之和、字母异位词、最长连续序列 |
| 栈与队列 | 有效括号、单调栈、单调队列 |
| 二叉树高频题 | 遍历、路径和、最近公共祖先 |
| 动态规划高频题 | 背包、打家劫舍、股票买卖 |
| 回溯高频题 | 全排列、组合、N 皇后 |
| 二分查找高频题 | 旋转数组、搜索区间 |
| 排序算法高频题 | 快排、归并、TopK |
| 单调栈专题 | Next Greater Element、接雨水、最大矩形 |
| 前缀和与差分数组 | 区间查询、区间修改 |
| 位运算技巧 | 异或运算、位掩码实战 |
| 并查集 | 朋友圈数量、岛屿数量 |
| 字典树 | 前缀匹配、异或问题 |
| 线段树与树状数组 | 区间查询与修改 |
| LeetCode 高效刷题方法 | 分类刷题、三遍法则、模板提炼 |
| 面试算法题类型总结 | 五大高频类型全景图与应对策略 |
| 分类 | 核心文章 |
|---|---|
| 系统设计基础 | 面试方法论、CAP 理论、一致性哈希、分库分表、消息队列、缓存策略 |
| 经典系统设计题 | 短链接系统、时间线推送、分布式 ID、延迟消息队列、排行榜/热搜、Redis 三穿透、秒杀系统、抢票系统、Auto Complete、关注/粉丝系统、分布式锁、OTP 系统、Feed 流、红包雨/抽奖、配置中心 |
| 架构设计思想 | 可扩展架构、高可用、一致性、容量规划、微服务拆分 |
| 文章 | 核心内容 |
|---|---|
| HR 常问问题汇总 | 高频 HR 问题与应对话术 |
| 自我介绍 | 3 分钟展现优势的自我介绍框架 |
| 离职原因 | 得体表达离职原因的技巧 |
| 职业规划 | 技术路线 vs 管理路线的选择 |
| 期望薪资 | 薪资谈判拿到高 offer 的策略 |
| 福利待遇 | 如何全面评估 offer 的真实价值 |
| 反向提问 | 问面试官什么加分 |
| 背调注意事项 | 背调流程与注意事项 |
| 文章 | 核心内容 |
|---|---|
| 如何高效准备技术面试 | 从知识体系到心态的全方位准备方案 |
| 面试高频问题分类与回答框架 | 技术问题分类与结构化回答方法 |
| 面试沟通技巧 | 如何清晰表达技术方案与思考过程 |
| 面试复盘模板 | 面试复盘的标准模板 |
| 如何应对压力面与追问 | 压力面的应对策略 |
| 面试凉了怎么办 | 调整心态、总结复盘、继续投递 |
Guide/
├── docs/ # 文档目录
│ ├── index.md # 首页
│ ├── interview/ # 面试准备(68 篇)
│ │ ├── index.md
│ │ ├── resume/ # 简历优化(6 篇)
│ │ ├── algorithm/ # 算法训练(15 篇)
│ │ ├── system-design/ # 系统设计(26 篇)
│ │ ├── hr/ # HR 面与谈薪(8 篇)
│ │ └── review/ # 面试经验与复盘(6 篇)
│ ├── java/ # Java
│ ├── cs/ # 计算机基础
│ ├── database/ # 数据库
│ ├── framework/ # 常用框架
│ ├── distributed/ # 分布式架构
│ ├── high-performance/ # 高性能与高可用
│ ├── middleware/ # 中间件
│ ├── devops/ # 工程化与运维
│ └── .vitepress/ # VitePress 配置
│ ├── config.js # 主配置
│ ├── nav.js # 导航栏
│ ├── sidebar.js # 侧边栏
│ └── sidebar/ # 各模块侧边栏
├── .cursor/
│ └── rules/ # Cursor AI 规则
│ ├── vitepress-docs.mdc # VitePress 文档规范
│ ├── vitepress-writing.mdc # 文档写作规范(含代码语言规范)
│ └── doc-common-mistakes.mdc # 常见错误避坑
├── package.json
└── README.md
欢迎提交 Issue 和 Pull Request!
- 文件放在正确的模块目录下
- 链接使用绝对路径
/module/xxx - 代码中的泛型使用 HTML 转义符(如
List<String>) - 代码示例必须使用 Java 语言,关键逻辑加注释说明「为什么这样做」
- AI 生成的文档不包含 frontmatter 头信息(
---、title、date) - 面试常考点使用标记突出
- 技术内容准确无误
- 代码示例为 Java 且关键处有注释
- 链接目标存在,无泛型未转义问题
- 不含 frontmatter 头信息
- 符合写作风格指南,有钩子式开头和记忆点
MIT