JavaGuide

Java 面试 & 后端通用面试指南,覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发

157,636 stars JavaScript Markdown Skills API Spec #agent#ai#context-engineering#deepseek
AI Prompts & Specs

Repository: Snailclimb/JavaGuide


Stars: 155035

README.md

- 推荐在线阅读(体验更好,速度更快):javaguide.cn
- 面试突击版本(只保留重点,附带精美 PDF 下载):interview.javaguide.cn

<div align="center">

![logo](https://github.com/Snailclimb/JavaGuide)

GitHub | Gitee

<a href="https://trendshift.io/repositories/1319" target="_blank"><img src="https://trendshift.io/api/badge/repositories/1319" alt="Snailclimb%2FJavaGuide | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>

</div>

- 大模型实战项目⭐AI 智能面试辅助平台 + RAG 知识库(基于 Spring Boot 4.0 + Java 21 + Spring AI 2.0 ,非常适合作为学习和简历项目,学习门槛低)。

- 面试资料补充

- 《Java 面试指北》:四年打磨,和 JavaGuide 开源版的内容互补,带你从零开始系统准备面试!

- 《后端面试高频系统设计&场景题》:30+ 道高频系统设计和场景面试,助你应对当下中大厂面试趋势。

- 使用建议 :如果你想要系统准备 Java 后端面试但又不知道如何开始的,可以参考 Java 后端面试通关计划(后端通用)

- 求个 Star:如果觉得 JavaGuide 的内容对你有帮助的话,还请点个免费的 Star,这是对我最大的鼓励,感谢各位一起同行,共勉!传送门:GitHub | Gitee

- 转载须知:以下所有文章如非文首说明为转载皆为 JavaGuide 原创,转载请在文首注明出处。如发现恶意抄袭/搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境!

<!-- #region home -->

AI 应用开发面试指南

AI 应用开发面试指南(⭐新增,正在持续更新):专门后端开发准备的 AI 应用开发核心知识,涵盖大模型基础、Agent、RAG、MCP 协议等高频面试考点。

AI Agent

- 一文搞懂 AI Agent 核心概念
- 大模型提示词工程实践指南
- 上下文工程实战指南
- 万字详解 Agent Skills
- 万字拆解 MCP 协议
- 一文搞懂 Harness Engineering
- AI 工作流中的 Workflow、Graph 与 Loop

面试准备

- ⭐Java 后端面试通关计划(涵盖后端通用体系) (一定要看 :+1:)
- 如何高效准备 Java 面试?
- Java 后端面试重点总结
- Java 学习路线(最新版,4w+ 字)
- 程序员简历编写指南
- 项目经验指南
- 面试太紧张怎么办?
- 校招没有实习经历怎么办?实习经历怎么写?

Java

基础

知识点/面试题总结 : (必看:+1: ):

- Java 基础常见知识点&面试题总结(上)
- Java 基础常见知识点&面试题总结(中)
- Java 基础常见知识点&面试题总结(下)

重要知识点详解

- 为什么 Java 中只有值传递?
- Java 序列化详解
- 泛型&通配符详解
- Java 反射机制详解
- Java 代理模式详解
- BigDecimal 详解
- Java 魔法类 Unsafe 详解
- Java SPI 机制详解
- Java 语法糖详解

集合

知识点/面试题总结

- Java 集合常见知识点&面试题总结(上) (必看 :+1:)
- Java 集合常见知识点&面试题总结(下) (必看 :+1:)
- Java 容器使用注意事项总结

源码分析

- ArrayList 核心源码+扩容机制分析
- LinkedList 核心源码分析
- HashMap 核心源码+底层数据结构分析
- ConcurrentHashMap 核心源码+底层数据结构分析
- LinkedHashMap 核心源码分析
- CopyOnWriteArrayList 核心源码分析
- ArrayBlockingQueue 核心源码分析
- PriorityQueue 核心源码分析
- DelayQueue 核心源码分析

IO

- IO 基础知识总结
- IO 设计模式总结
- IO 模型详解
- NIO 核心知识总结

并发

知识点/面试题总结 : (必看 :+1:)

- Java 并发常见知识点&面试题总结(上)
- Java 并发常见知识点&面试题总结(中)
- Java 并发常见知识点&面试题总结(下)

重要知识点详解

- 乐观锁和悲观锁详解
- CAS 详解
- JMM(Java 内存模型)详解
- 线程池Java 线程池详解Java 线程池最佳实践
- ThreadLocal 详解
- Java 并发容器总结
- Atomic 原子类总结
- AQS 详解
- CompletableFuture 详解

JVM (必看 :+1:)

JVM 这部分内容主要参考 JVM 虚拟机规范-Java8 和周志明老师的《深入理解 Java 虚拟机(第 3 版)》 (强烈建议阅读多遍!)。

- Java 内存区域
- JVM 垃圾回收
- 类文件结构
- 类加载过程
- 类加载器
- 【待完成】最重要的 JVM 参数总结(翻译完善了一半)
- 【加餐】大白话带你认识 JVM
- JDK 监控和故障处理工具

新特性

- Java 8Java 8 新特性总结(翻译)Java8 常用新特性总结
- Java 9 新特性概览
- Java 10 新特性概览
- Java 11 新特性概览
- Java 12 & 13 新特性概览
- Java 14 & 15 新特性概览
- Java 16 新特性概览
- Java 17 新特性概览
- Java 18 新特性概览
- Java 19 新特性概览
- Java 20 新特性概览
- Java 21 新特性概览
- Java 22 & 23 新特性概览
- Java 24 新特性概览
- Java 25 新特性概览

计算机基础

操作系统

- 操作系统常见知识点&面试题总结(上)
- 操作系统常见知识点&面试题总结(下)
- Linux
- 后端程序员必备的 Linux 基础知识总结
- Shell 编程基础知识总结

网络

知识点/面试题总结

- 计算机网络常见知识点&面试题总结(上)
- 计算机网络常见知识点&面试题总结(下)
- 谢希仁老师的《计算机网络》内容总结(补充)

重要知识点详解

- OSI 和 TCP/IP 网络分层模型详解(基础)
- 应用层常见协议总结(应用层)
- HTTP vs HTTPS(应用层)
- HTTP 1.0 vs HTTP 1.1(应用层)
- HTTP 常见状态码(应用层)
- DNS 域名系统详解(应用层)
- TCP 三次握手和四次挥手(传输层)
- TCP 传输可靠性保障(传输层)
- ARP 协议详解(网络层)
- NAT 协议详解(网络层)
- 网络攻击常见手段总结(安全)

数据结构

图解数据结构:

- 线性数据结构 :数组、链表、栈、队列
-
-
- :重点关注红黑树、B-,B+,B\*树、LSM 树

其他常用数据结构:

- 布隆过滤器

算法

算法这部分内容非常重要,如果你不知道如何学习算法的话,可以看下我写的:

- 算法学习书籍+资源推荐
- 如何刷 Leetcode?

常见算法问题总结

- 几道常见的字符串算法题总结
- 几道常见的链表算法题总结
- 剑指 offer 部分编程题
- 十大经典排序算法

另外,GeeksforGeeks 这个网站总结了常见的算法 ,比较全面系统。

数据库

基础

- 数据库基础知识总结
- NoSQL 基础知识总结
- 字符集详解
- SQL :
- SQL 语法基础知识总结
- SQL 常见面试题总结

MySQL

知识点/面试题总结:

- MySQL 常见知识点&面试题总结 (必看 :+1:)
- MySQL 高性能优化规范建议总结

重要知识点:

- MySQL 索引详解
- MySQL 索引失效场景总结
- MySQL 事务隔离级别图文详解)
- MySQL 三大日志(binlog、redo log 和 undo log)详解
- InnoDB 存储引擎对 MVCC 的实现
- SQL 语句在 MySQL 中的执行过程
- MySQL 查询缓存详解
- MySQL 执行计划分析
- MySQL 自增主键一定是连续的吗
- MySQL 时间类型数据存储建议
- MySQL 隐式转换造成索引失效

Redis

知识点/面试题总结 : (必看:+1: ):

- Redis 常见知识点&面试题总结(上)
- Redis 常见知识点&面试题总结(下)

重要知识点:

- 3 种常用的缓存读写策略详解
- Redis 能做消息队列吗?怎么实现?
- Redis 5 种基本数据结构详解
- Redis 3 种特殊数据结构详解
- Redis 持久化机制详解
- Redis 内存碎片详解
- Redis 常见阻塞原因总结
- Redis 集群详解

MongoDB

- MongoDB 常见知识点&面试题总结(上)
- MongoDB 常见知识点&面试题总结(下)

搜索引擎

Elasticsearch 常见面试题总结(付费)

!JavaGuide 官方公众号

开发工具

Maven

- Maven 核心概念总结
- Maven 最佳实践

Gradle

Gradle 核心概念总结(可选,目前国内还是使用 Maven 普遍一些)

Docker

- Docker 核心概念总结
- Docker 实战

Git

- Git 核心概念总结
- GitHub 实用小技巧总结

系统设计

- ⭐系统设计常见面试题总结
- ⭐设计模式常见面试题总结

基础

- RestFul API 简明教程
- 软件工程简明教程
- 代码命名指南
- 代码重构指南
- 单元测试指南

常用框架

#### Spring/SpringBoot (必看 :+1:)

知识点/面试题总结 :

- Spring 常见知识点&面试题总结
- SpringBoot 常见知识点&面试题总结
- Spring/Spring Boot 常用注解总结
- SpringBoot 入门指南

重要知识点详解

- IoC & AOP详解(快速搞懂)
- Spring 事务详解
- Spring 中的设计模式详解
- SpringBoot 自动装配原理详解

#### MyBatis

MyBatis 常见面试题总结

安全

#### 认证授权

- 认证授权基础概念详解
- JWT 基础概念详解
- JWT 优缺点分析以及常见问题解决方案
- SSO 单点登录详解
- 权限系统设计详解

#### 数据安全

- 常见加密算法总结
- 敏感词过滤方案总结
- 数据脱敏方案总结
- 为什么前后端都要做数据校验
- 为什么忘记密码时只能重置,不能告诉你原密码?

定时任务

Java 定时任务详解

Web 实时消息推送

Web 实时消息推送详解

分布式

- ⭐分布式高频面试题

理论&算法&协议

- CAP 理论和 BASE 理论解读
- Paxos 算法解读
- Raft 算法解读
- ZAB 协议解读
- Gossip 协议详解
- 一致性哈希算法详解

RPC

- RPC 基础知识总结
- Dubbo 常见知识点&面试题总结

ZooKeeper

这两篇文章可能有内容重合部分,推荐都看一遍。

- ZooKeeper 相关概念总结(入门)
- ZooKeeper 相关概念总结(进阶)

API 网关

- API 网关基础知识总结
- Spring Cloud Gateway 常见知识点&面试题总结

分布式 ID

- 分布式ID介绍&实现方案总结
- 分布式 ID 设计指南

分布式锁

- 分布式锁介绍
- 分布式锁常见实现方案总结

分布式事务

分布式事务常见知识点&面试题总结

分布式配置中心

分布式配置中心常见知识点&面试题总结

高性能

数据库优化

- 数据库读写分离和分库分表
- 数据冷热分离
- 常见 SQL 优化手段总结
- 深度分页介绍及优化建议

负载均衡

负载均衡常见知识点&面试题总结

CDN

CDN(内容分发网络)常见知识点&面试题总结

消息队列

- 消息队列基础知识总结
- Disruptor 常见知识点&面试题总结
- RabbitMQ 常见知识点&面试题总结
- RocketMQ 常见知识点&面试题总结
- Kafka 常见知识点&面试题总结

高可用

高可用系统设计指南

冗余设计

冗余设计详解

限流

服务限流详解

降级&熔断

降级&熔断详解

超时&重试

超时&重试详解

集群

相同的服务部署多份,避免单点故障。

灾备设计和异地多活

灾备 = 容灾 + 备份。

- 备份:将系统所产生的所有重要数据多备份几份。
- 容灾:在异地建立两个完全相同的系统。当某个地方的系统突然挂掉,整个应用系统可以切换到另一个,这样系统就可以正常提供服务了。

异地多活 描述的是将服务部署在异地并且服务同时对外提供服务。和传统的灾备设计的最主要区别在于“多活”,即所有站点都是同时在对外提供服务的。异地多活是为了应对突发状况比如火灾、地震等自然或者人为灾害。

Star 趋势

!Stars

公众号

如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。

<img src="https://oss.javaguide.cn/github/javaguide/gongzhonghao-javaguide.png" alt="JavaGuide 公众号" style="zoom: 43%; display: block; margin: 0 auto;" />

<!-- #endregion home -->