Skip to content

xinrun0928/VitePress_Guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java 面试指南

系统梳理 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 install

本地开发

npm run dev

访问 http://localhost:3000 查看文档。

构建生产版本

npm run build

部署

npm run deploy

知识图谱

Java 后端面试知识体系
│
├── 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 评估

Java

  • HashMap JDK 7 vs JDK 8 实现差异
  • synchronized 锁升级过程
  • volatile 内存语义与内存屏障
  • ThreadLocal 内存泄漏问题
  • 线程池参数与工作流程
  • JVM 内存模型与 GC 算法
  • 类加载机制与双亲委派

MySQL

  • InnoDB vs MyISAM 核心差异
  • B+ 树索引原理与最左前缀
  • 事务隔离级别与 MVCC
  • MySQL 锁类型与死锁避免
  • 主从复制原理与延迟问题
  • 分库分表策略与问题

Redis

  • 5 种数据结构与底层编码
  • RDB vs AOF 持久化对比
  • 缓存穿透、击穿、雪崩解决方案
  • Sentinel vs Cluster 选型
  • Redis 分布式锁实现
  • I/O 多路复用与事件处理

分布式

  • CAP 理论及其应用
  • 2PC/3PC/TCC 分布式事务方案
  • Raft 共识算法核心流程
  • 消息队列如何保证可靠性
  • 限流算法与实现
  • 熔断与降级策略

面试准备模块速览

本项目的 interview/ 模块包含 68 篇文档,覆盖面试全流程:

简历优化(7 篇)

文章 核心内容
一份优秀简历的标准 好简历的五个标准与常见问题
简历各模块写法 个人信息、技术栈、项目经历的正确写法
STAR 法则 用 STAR 法则写出有说服力的项目描述
项目经历包装 让普通项目看起来有亮点
简历常见问题与修改建议 十大高频简历问题与解决方案
技术简历模板参考 各经验层级简历模板参考

算法训练(16 篇)

文章 核心内容
双指针与滑动窗口 对撞指针、快慢指针、滑动窗口
哈希表高频题 两数之和、字母异位词、最长连续序列
栈与队列 有效括号、单调栈、单调队列
二叉树高频题 遍历、路径和、最近公共祖先
动态规划高频题 背包、打家劫舍、股票买卖
回溯高频题 全排列、组合、N 皇后
二分查找高频题 旋转数组、搜索区间
排序算法高频题 快排、归并、TopK
单调栈专题 Next Greater Element、接雨水、最大矩形
前缀和与差分数组 区间查询、区间修改
位运算技巧 异或运算、位掩码实战
并查集 朋友圈数量、岛屿数量
字典树 前缀匹配、异或问题
线段树与树状数组 区间查询与修改
LeetCode 高效刷题方法 分类刷题、三遍法则、模板提炼
面试算法题类型总结 五大高频类型全景图与应对策略

系统设计(27 篇)

分类 核心文章
系统设计基础 面试方法论CAP 理论一致性哈希分库分表消息队列缓存策略
经典系统设计题 短链接系统时间线推送分布式 ID延迟消息队列排行榜/热搜Redis 三穿透秒杀系统抢票系统Auto Complete关注/粉丝系统分布式锁OTP 系统Feed 流红包雨/抽奖配置中心
架构设计思想 可扩展架构高可用一致性容量规划微服务拆分

HR 面与谈薪(9 篇)

文章 核心内容
HR 常问问题汇总 高频 HR 问题与应对话术
自我介绍 3 分钟展现优势的自我介绍框架
离职原因 得体表达离职原因的技巧
职业规划 技术路线 vs 管理路线的选择
期望薪资 薪资谈判拿到高 offer 的策略
福利待遇 如何全面评估 offer 的真实价值
反向提问 问面试官什么加分
背调注意事项 背调流程与注意事项

面试经验与复盘(7 篇)

文章 核心内容
如何高效准备技术面试 从知识体系到心态的全方位准备方案
面试高频问题分类与回答框架 技术问题分类与结构化回答方法
面试沟通技巧 如何清晰表达技术方案与思考过程
面试复盘模板 面试复盘的标准模板
如何应对压力面与追问 压力面的应对策略
面试凉了怎么办 调整心态、总结复盘、继续投递

项目结构

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!

文档规范

  1. 文件放在正确的模块目录下
  2. 链接使用绝对路径 /module/xxx
  3. 代码中的泛型使用 HTML 转义符(如 List<String>
  4. 代码示例必须使用 Java 语言,关键逻辑加注释说明「为什么这样做」
  5. AI 生成的文档不包含 frontmatter 头信息---titledate
  6. 面试常考点使用标记突出

提交前检查

  • 技术内容准确无误
  • 代码示例为 Java 且关键处有注释
  • 链接目标存在,无泛型未转义问题
  • 不含 frontmatter 头信息
  • 符合写作风格指南,有钩子式开头和记忆点

License

MIT

About

面试指南

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages