GitHub 开源:一份系统化的 Java 架构师技术 CookBook,从数据结构到分布式系统的完整学习路线图

本文介绍一个我持续维护的 Java 技术知识仓库,涵盖数据结构与算法、Java 核心、Spring 生态、分布式系统等全栈内容,适合从初级到架构师的系统化学习。


GitHub 地址https://github.com/Byron4j/CookBook

关键词:Java | 数据结构与算法 | Spring Boot | 微服务 | 分布式系统 | 面试 | 架构师


本文首发于个人技术博客,转载请注明出处。

写在前面:为什么做这个项目?

在准备 Java 面试和日常技术沉淀的过程中,我发现一个痛点:

网上资料很多,但成体系的少;博客很详细,但找起来零散。

于是我开始用 “CookBook(食谱)” 的理念整理自己的技术笔记——就像烹饪一样,把每个技术点按照 “概念 → 原理 → 实践 → 最佳实践” 的方式组织起来,形成一份可查阅、可运行、可复用的系统化手册。

这个项目从 2018 年开始维护,到今天已经沉淀了 60+ 篇技术文档 和大量可运行的示例代码。

项目亮点:这份 CookBook 有什么不一样?

1. 数据结构 & 算法模块:不只是 LeetCode 题解

最近我刚完成了一次大规模的内容扩充,数据结构与算法模块从原来的 10 篇扩展到了 28 篇,包含:

基础数据结构(10 篇)

数据结构 核心内容 图示
线性表 数组扩容策略、插入流程、时间复杂度分析 ASCII 内存布局图
链表 单/双/循环链表、头插尾插法、LRU 缓存实现 指针变化图解
栈与队列 LIFO/FIFO、双端队列、循环队列、括号匹配 操作流程图
哈希表 拉链法/开放寻址、负载因子、Java HashMap 原理 冲突解决示意图
树与二叉树 遍历方式、存储结构、BST 插入删除 树形结构图
红黑树 自平衡机制、插入修复、TreeMap 源码分析 旋转图解
AVL 树 平衡因子、四种旋转模式 失衡修复流程
B 树/B+ 树 多路平衡、MySQL InnoDB 索引原理 节点分裂图示
邻接矩阵/表、DFS/BFS、Dijkstra 最短路径 搜索路径可视化

基础算法(11 篇)

  • 6 大排序算法:快排、归并、堆排、冒泡、选择、插入——每种都包含分步图解和复杂度对比
  • 二分查找及 4 种变体:基础二分、查找边界、lower_bound/upper_bound
  • DFS & BFS:递归/迭代实现、回溯算法、最短路径
  • 动态规划:最优子结构、重叠子问题、爬楼梯、0-1 背包
  • 贪心算法:活动选择、霍夫曼编码、分数背包

工程实践算法(7 篇)—— 面试高频 + 生产必备

算法 应用场景 涉及框架
限流算法 API 网关流量控制 Sentinel、Guava RateLimiter
布隆过滤器 缓存穿透防护 RedisBloom、Guava
一致性哈希 分布式缓存分片 Redis Cluster、Nginx
负载均衡 请求分发策略 Ribbon、Nginx、K8s
分布式 ID 全局唯一标识 Leaf、Snowflake
分布式锁 并发控制 Redisson、Curator
跳表 有序集合实现 Redis ZSet、ConcurrentSkipListMap

每篇文档都包含 ASCII 结构图、流程图、Java 代码示例、复杂度对比表,力求做到 “一看就懂,一学就会”。

2. 12 周学习路线图:从基础到架构师

项目 README 中提供了一份 12 周渐进式学习路线

第 1 周:Java 基础强化(枚举、注解、反射、动态代理)
第 2-3 周:数据结构与算法
第 4 周:并发与 JVM(线程池、AQS、GC 调优)
第 5-6 周:数据库与缓存(MySQL 索引、Redis 数据结构)
第 7-8 周:框架与微服务(Spring IOC/AOP、SpringCloud)
第 9-10 周:分布式系统(一致性哈希、分布式锁、RocketMQ)
第 11-12 周:架构与高可用(限流降级、负载均衡、Nginx)

3. 可运行的示例代码

不只是文档,每个知识点都配有可运行的 Java 代码:

# 克隆项目
git clone https://github.com/Byron4j/CookBook.git

# 编译运行示例
./mvnw clean compile
./mvnw test
  • 线性表、链表、栈队列的增删改查 Demo
  • 二叉树的前序/中序/后序遍历实现
  • 快速排序、归并排序的单元测试
  • Netty 网络编程示例
  • RocketMQ 生产者/消费者代码
  • Zookeeper 分布式协调示例

4. 面试专区:大厂高频考点整理

专门整理了面向 阿里、字节、腾讯 等大厂的面试重点:

数据结构与算法面试

  • 必会排序:快排、归并、堆排(手写代码 + 复杂度分析)
  • 高频 DP:爬楼梯、最长递增子序列、0-1 背包
  • 工程算法:一致性哈希、限流算法、布隆过滤器(场景题)

Java 基础面试

  • 集合框架:HashMap 源码(扰动函数、扩容、树化)
  • 并发编程:AQS 原理、线程池参数与拒绝策略
  • JVM:内存模型、GC 算法、OOM 排查

分布式面试

  • Redis:缓存穿透/击穿/雪崩解决方案、分布式锁
  • RocketMQ:事务消息、顺序消息、重复消费
  • 分布式理论:CAP/BASE、分布式事务(2PC/TCC/Seata)

项目结构一览

CookBook/
├── 📚 知识文档层
│   ├── 数据结构和算法/       # 28 篇:基础 + 工程实践
│   ├── Java核心/            # 枚举、注解、反射、线程池、AQS
│   ├── JVM/                 # 参数、GC、内存模型
│   ├── Spring/              # IOC、AOP、事务、拦截器
│   ├── SpringCloud/         # Eureka、Ribbon、Hystrix、Gateway
│   ├── MySQL/               # 存储引擎、索引、事务隔离
│   ├── Redis/               # 数据结构、分布式锁、持久化
│   ├── RocketMQ/            # 核心概念、最佳实践、源码阅读
│   ├── Nginx/               # 负载均衡、反向代理、配置详解
│   ├── Zookeeper/           # 分布式协调、集群配置
│   ├── 架构/                # 高可用、微服务、缓存一致性
│   ├── 设计模式/            # 12 种经典模式详解
│   └── ...
│
├── 💻 示例代码层
│   └── src/main/java/org/byron4j/cookbook/
│       ├── javacore/        # Java 核心机制演示
│       ├── netty/           # NIO/Netty 网络编程
│       ├── rocketmq/        # MQ 生产者/消费者
│       └── zk/              # Zookeeper 示例
│
└── 📋 项目文档
    ├── README.md            # 全库导航 + 学习路线
    └── PROJECT_OVERVIEW.md  # 项目架构总览

适合谁阅读?

  • 校招/社招面试准备:系统复习 Java 技术栈,算法与工程实践并重
  • 初级 → 中级工程师:夯实基础,理解框架原理
  • 中级 → 高级工程师:掌握分布式系统、性能优化、架构设计
  • 团队技术分享:可直接作为内部分享的参考资料

如何使用这个项目?

方式一:作为学习路线图

按照 README 中的 “12 周学习路线” 循序渐进,每周完成一个主题。

方式二:作为面试复习资料

直接跳到 “面试专区”,针对性复习高频考点。

方式三:作为技术速查手册

遇到某个技术点(如 “Redis 分布式锁怎么实现?”),直接搜索对应文档。

方式四:运行示例代码加深理解

# 1. 克隆仓库
git clone https://github.com/Byron4j/CookBook.git
cd CookBook

# 2. 编译项目
./mvnw clean compile

# 3. 运行测试(验证算法正确性)
./mvnw -Dtest=AlgorithmBasicsTest test

如何参与贡献?

这是一个开放的知识库,欢迎提交 PR 或 Issue:

  1. Fork 本仓库
  2. 创建你的分支git checkout -b feature/your-feature
  3. 提交改动git commit -am 'Add some feature'
  4. 创建 Pull Request

目前待办清单中还有不少内容建设中:

  • Tomcat 架构与调优专题
  • Docker / Kubernetes 容器化专题
  • Seata 分布式事务实战
  • ELK 日志采集与分析
  • Prometheus + Grafana 监控体系

欢迎一起完善!

写在最后

技术学习没有捷径,但好的资料可以让过程更高效。

这份 CookBook 是我过去几年技术沉淀的结晶,希望能帮助更多 Java 开发者少走弯路。如果你觉得有用,欢迎:

点个 Star,这是我持续更新的动力
🍴 Fork 一份,作为自己的技术笔记
📢 分享给朋友,一起进步

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2lbcu6r9g5k4k

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐