Java 后端知识库
这里整理的是 Java 后端开发知识,目标不是堆积文章,而是把语言基础、框架、数据组件、中间件和工程实践串成可以学习、复习和排障的路线。
如果你是零基础,不建议一开始就直接看源码、JVM 调优或分布式事务。更合理的顺序是:先学 Java 基础,再学数据库和 Web,再学 Spring,再学中间件和分布式。
按目标开始
| 你的目标 | 建议入口 | 阅读方式 |
|---|---|---|
| 零基础系统学习 | Java SE 从零到生产级掌握 | 先语言基础,再数据库、Web 和 Spring |
| 已有基础,查漏补缺 | 全站知识地图 | 按模块验收,不必从头顺序阅读 |
| 准备面试 | 各模块的“面试题”页面 | 先看标准回答,再跳转原理页 |
| 解决线上问题 | 对应技术的“排查、生产实践”页面 | 从现象和调用链切入 |
| 做综合项目 | 各模块的“商业场景训练营” | 用 Demo、异常场景和测试验收 |
内容建设规范和扩展点地图属于站点维护资料,普通读者可以跳过;学习时直接从下方路线或对应技术模块进入即可。
推荐学习路线
mermaid
flowchart TD
A["Java SE 基础"] --> B["集合、异常、IO、泛型"]
B --> C["多线程和 JVM"]
C --> D["MySQL、Redis、MongoDB"]
D --> E["Java EE 和 JDBC"]
E --> F["MyBatis、JPA、事务"]
F --> G["Spring、Spring MVC、Spring Boot"]
G --> H["Spring Security、Spring Cloud"]
H --> I["Dubbo、ZooKeeper、消息队列"]
I --> J["搜索、Netty、分布式"]
J --> K["DevOps、Kubernetes"]这条路线不是死顺序,但适合大多数后端学习路径。
各目录学什么
| 目录 | 重点 | 学完应该能做什么 |
|---|---|---|
| Java SE | 基础语法、集合、多线程、JVM、锁 | 看懂普通 Java 代码,理解运行机制 |
| 数据库 | MySQL、Redis、MongoDB | 能设计表、写 SQL、做缓存和索引 |
| Java EE | Servlet、Filter、Session、JDBC | 理解 Web 后端底层请求流程 |
| ORM | MyBatis、Hibernate、JPA | 能把 Java 对象和数据库操作连接起来 |
| Spring | IOC、AOP、事务、MVC | 理解 Java 后端主流框架基础 |
| Spring Boot | 自动配置、Starter、Web 项目 | 能快速搭建后端服务 |
| Spring Security | 登录、认证、授权、JWT | 能做接口权限控制 |
| Spring Cloud | 注册中心、网关、限流、配置 | 理解微服务常见组件 |
| Dubbo | RPC、注册发现、协议序列化、负载均衡、SPI | 理解内部服务远程调用链路 |
| ZooKeeper | znode、Watcher、Session、ZAB、锁和选主 | 理解分布式协调组件原理 |
| 消息队列 | RocketMQ、RabbitMQ、Kafka | 理解异步、削峰、重试、死信 |
| 搜索引擎 | Elasticsearch | 能做站内搜索和日志检索 |
| Netty | 网络编程、高性能 IO | 理解网关、RPC、长连接基础 |
| DevOps | Docker、K8s、Jenkins、Nginx | 能部署和排查后端服务 |
一个后端请求的完整链路
mermaid
flowchart TD
A["浏览器或客户端"] --> B["Nginx 或网关"]
B --> C["Spring Boot Controller"]
C --> D["Service 业务层"]
D --> E["Mapper 或 Repository"]
E --> F["MySQL"]
D --> G["Redis 缓存"]
D --> H["消息队列"]
H --> I["异步消费者"]
D --> J["Elasticsearch 搜索"]学习时要把每个技术放回这条链路里理解:它解决什么问题,位于什么位置,和其他组件如何协作。
零基础学习建议
- 先能写 CRUD,再理解框架原理。
- 学数据库时一定要写 SQL,不要只看 ORM。
- 学 Spring 时先理解 IOC、AOP、事务,再看自动配置。
- 学 Redis 时不要只背数据结构,要理解缓存问题。
- 学消息队列时重点理解可靠投递、重复消费、顺序、重试。
- 学 DevOps 时至少会用 Docker 启动应用和数据库。
实战练习路线
mermaid
flowchart TD
A["练习 1:Java 控制台程序"] --> B["练习 2:JDBC 操作 MySQL"]
B --> C["练习 3:MyBatis CRUD"]
C --> D["练习 4:Spring Boot REST API"]
D --> E["练习 5:登录和 JWT"]
E --> F["练习 6:Redis 缓存文章"]
F --> G["练习 7:MQ 异步发送通知"]
G --> H["练习 8:Docker 部署服务"]每个练习都建议补充:
- README。
- 接口文档。
- 异常处理。
- 日志。
- 基础测试。
- 常见问题记录。
本页小结
后端知识很多,学习时不要把它们当成孤立名词。把技术放到“请求进来、业务处理、数据访问、缓存、异步、部署”这条主线上,理解会更快,也更容易用于项目。
