任何技能都可以通过"刻意练习"达到融会贯通的境界。
就像烹饪一样,
CookBook希望用一份系统化的 Java 技术手册,陪你把每一次练习都变成可复用的能力。
如果这些内容对你有帮助,欢迎点一个 Star 支持一下仓库。
你的每一个 Star,都是我持续更新高质量 Java 技术内容的动力,也能让更多开发者更快发现这份资料。
CookBook 是一个以 Java 技术栈为核心的全栈式知识仓库,覆盖从 基础语法 → 并发编程 → JVM 调优 → 分布式系统 → 微服务架构 → 云原生的完整技术链路。
CookBook/
├── 📚 知识文档层 # 按技术域沉淀的专题内容(Markdown)
│ ├── 数据结构和算法 # 28 篇文档:基础结构 + 算法 + 工程实践
│ ├── Java核心 # 枚举、注解、反射、动态代理、线程池
│ ├── JVM # 参数、调优、GC、内存模型
│ ├── Spring生态 # Spring / SpringBoot / SpringCloud
│ ├── 数据存储 # MySQL / Redis / MyBatis
│ ├── 消息队列 # RocketMQ / Kafka
│ ├── 分布式系统 # Zookeeper / Dubbo / 分布式事务
│ ├── 网络与通信 # Netty / Nginx / HTTP
│ ├── 架构设计 # 高可用 / 微服务 / 缓存一致性
│ ├── 工程工具 # Maven / Git / Linux / Jenkins
│ ├── 设计模式 # 12 种经典模式详解
│ └── 其他专题 # Python / Lua / JSON / 测试...
│
├── 💻 示例代码层 # 可运行、可阅读的实践代码
│ └── src/main/java/org/byron4j/cookbook/
│ ├── javacore/ # Java 核心机制演示
│ ├── netty/ # NIO/Netty 网络编程
│ ├── rocketmq/ # 消息队列生产者/消费者
│ ├── zk/ # Zookeeper 分布式协调
│ └── ...
│
├── 🔧 工程化层 # 标准化构建与测试
│ ├── pom.xml # Maven 构建配置
│ ├── mvnw # Maven Wrapper
│ └── src/test/ # 单元测试与集成测试
│
└── 📋 项目文档
├── README.md # 本文件(全库导航)
├── PROJECT_OVERVIEW.md # 项目架构总览
└── README-CHANGELOG.md # 更新日志
Java Spring Boot Spring Cloud 微服务架构 分布式系统 高并发 JVM 调优 Netty RocketMQ Redis MySQL Zookeeper Dubbo Nginx 设计模式 数据结构与算法 限流算法 布隆过滤器 一致性哈希 分布式锁 负载均衡 工程实践 面试准备
目标:夯实 Java 基础语法、常用机制与基础框架认知。
- 推荐先读:
Java核心(枚举、注解、反射、动态代理) - 配套基础:
数据结构和算法、Spring/1-IOC相关.md - 产出能力:能独立完成常规业务编码与基础问题排查
目标:形成并发、JVM、数据库与主流框架的系统理解。
- 推荐重点:
Java核心/线程池、JVM、SpringAOP、Spring事务、MyBatis、Redis - 代码建议:阅读
src/main/java/org/byron4j/cookbook/javacore - 产出能力:能负责模块设计、性能基础优化与常见故障定位
目标:掌握高并发与分布式系统核心组件及治理能力。
- 推荐重点:
分布式高并发、SpringCloud、RocketMQ、Nginx、Zookeeper - 代码建议:阅读
src/main/java/org/byron4j/cookbook/netty、rocketmq、zk - 产出能力:能完成服务治理、限流降级、消息异步化与高可用设计
目标:建立架构方法论与源码级分析、性能调优与工程治理能力。
- 推荐重点:
架构/内容/架构内容.md、架构/高可用、架构/云原生、RocketMQ源码片段阅读、javassist指南 - 综合能力:架构权衡、容量评估、可观测性建设、复杂问题根因分析
- 作者向建议:持续维护目录一致性与版本化标记,保持"知识图谱 + 示例代码"同步演进
目标:夯实 Java 基础语法、常用机制与基础框架认知。
- 推荐先读:
Java核心(枚举、注解、反射、动态代理) - 配套基础:
数据结构和算法、Spring/1-IOC相关.md - 产出能力:能独立完成常规业务编码与基础问题排查
目标:形成并发、JVM、数据库与主流框架的系统理解。
- 推荐重点:
Java核心/线程池、JVM、SpringAOP、Spring事务、MyBatis、Redis - 代码建议:阅读
src/main/java/org/byron4j/cookbook/javacore - 产出能力:能负责模块设计、性能基础优化与常见故障定位
目标:掌握高并发与分布式系统核心组件及治理能力。
- 推荐重点:
分布式高并发、SpringCloud、RocketMQ、Nginx、Zookeeper - 代码建议:阅读
src/main/java/org/byron4j/cookbook/netty、rocketmq、zk - 产出能力:能完成服务治理、限流降级、消息异步化与高可用设计
目标:建立架构方法论与源码级分析、性能调优与工程治理能力。
- 推荐重点:
架构/内容/架构内容.md、架构/高可用、架构/云原生、RocketMQ源码片段阅读、javassist指南 - 综合能力:架构权衡、容量评估、可观测性建设、复杂问题根因分析
- 作者向建议:持续维护目录一致性与版本化标记,保持“知识图谱 + 示例代码”同步演进
Java 架构师技术栈全景
┌─────────────────────────────────────────────────────┐
│ 基础层 │
│ Java SE │ 数据结构与算法 │ 设计模式 │ SQL基础 │
└────────────────────┬────────────────────────────────┘
│
┌────────────────────┼────────────────────────────────┐
│ ▼ │
│ 中级层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Spring │ │ MyBatis │ │ MySQL │ │
│ │ 核心 │ │ ORM框架 │ │ 数据库 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ JVM │ │ 并发编程 │ │ Redis │ │
│ │ 调优 │ │ 多线程 │ │ 缓存 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└────────────────────┬────────────────────────────────┘
│
┌────────────────────┼────────────────────────────────┐
│ ▼ │
│ 高级层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │SpringCloud│ │ RocketMQ │ │ Netty │ │
│ │ 微服务 │ │ 消息队列 │ │ 网络通信│ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │Zookeeper │ │ Nginx │ │ Docker │ │
│ │ 协调服务 │ │ 网关负载 │ │ 容器化 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└────────────────────┬────────────────────────────────┘
│
┌────────────────────┼────────────────────────────────┐
│ ▼ │
│ 资深专家层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 架构设计 │ │ 源码阅读 │ │ 性能调优 │ │
│ │ 高可用 │ │ AQS/Netty│ │ 全链路 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 分布式 │ │ 云原生 │ │ 工程治理 │ │
│ │ 事务/锁 │ │ K8s/ServiceMesh │ CI/CD │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────┘
- 新读者:按"基础 → 中级 → 高级 → 资深专家"顺序阅读,建议从 数据结构和算法 开始。
- 面试准备:重点复习
Java核心、JVM、数据结构和算法、Redis、Spring、设计模式、分布式系统。 - 作者/维护者:优先维护
README导航与目录一致性,减少失效链接与重复入口。 - 进阶读者:文档学习与
src示例代码并行阅读,优先关注 Netty、RocketMQ、Zookeeper 三类链路示例。 - 架构师:直接跳到 架构、分布式高并发、Nginx 板块。
# 1. 克隆仓库
git clone https://github.com/Byron4j/CookBook.git
cd CookBook
# 2. 编译运行示例代码
./mvnw clean compile
# 3. 运行测试
./mvnw test
# 4. 运行特定测试类
./mvnw -Dtest=AlgorithmBasicsTest test第 1 周:Java 基础强化
├── Java核心/1-Java枚举.md
├── Java核心/2-Java注解.md
├── Java核心/3-Java反射.md
└── Java核心/4-动态代理.md
第 2-3 周:数据结构与算法
├── 数据结构:线性表 → 链表 → 栈/队列 → 哈希 → 树 → 图
└── 算法:排序(快排/归并/堆排) → 二分查找 → DFS/BFS → DP/贪心
第 4 周:并发与 JVM
├── Java核心/5-线程池.md
├── Java核心/6-AQS-抽象队列同步器.md
├── Java核心/7-ReentrantLock重入锁.md
├── Java核心/8-Java并发编程核心机制.md
├── JVM/1-JVM参数.md
└── JVM/2-jstat命令详解.md
第 5-6 周:数据库与缓存
├── MySQL/2-MySql存储引擎.md
├── MySQL/3-InnoDB存储引擎.md
├── Redis/1-Redis内存淘汰策略.md
├── Redis/2-Redis数据类型以及数据结构实现.md
└── Redis/6-Redis分布式锁.md
第 7-8 周:框架与微服务
├── Spring/1-IOC相关.md
├── Spring/3-SpringAOP.md
├── Spring/6-Spring事务.md
├── SpringBoot/1-SpringBoot自动装配原理.md
├── SpringBoot/2-SpringBoot起步依赖与Actuator.md
├── SpringCloud/1-Eureka服务注册发现.md
└── SpringCloud/2-Ribbon负载均衡.md
第 9-10 周:分布式系统
├── 数据结构和算法/算法/14-一致性哈希.md
├── 数据结构和算法/算法/16-分布式ID生成算法.md
├── 数据结构和算法/算法/17-分布式锁算法.md
├── RocketMQ/1-RocketMQ核心知识.md
└── Zookeeper/第1章-Zk概览.md
第 11-12 周:架构与高可用
├── 架构/微服务/01-为什么大公司一定要使用微服务.md
├── 架构/高可用/01-高可用、负载均衡不得不说的事.md
├── Nginx/2-Nginx基础入门.md
└── Nginx/7-负载均衡实现实践.md
- 🎉01-线性表 - 数组实现、扩容策略、随机访问 O(1)
- 🎉02-链表 - 单链表、双链表、循环链表、LRU 缓存实现
- 🎉03-栈、队列 - LIFO/FIFO、双端队列、括号匹配、循环队列
- 🎉04-哈希 - 哈希函数、拉链法/开放寻址、负载因子、Java HashMap 原理
- 🎉05-树 - 二叉树、满二叉树、完全二叉树、前序/中序/后序/层序遍历
- 🎉06-二叉查找树 - BST 性质、插入删除、三种删除场景、退化问题
- 🎉07-红黑树 - 自平衡、颜色约束、插入修复、TreeMap/TreeSet 实现
- 🎉08-AVL树 - 严格平衡、平衡因子、LL/RR/LR/RL 四种旋转
- 🎉09-B树 - 多路平衡查找树、B+树、MySQL InnoDB 索引、分裂合并
- 🎉10-图 - 邻接矩阵/邻接表、DFS/BFS、Dijkstra 最短路径
- 🎉1-快速排序 - 分治策略、分区过程、基准选择、时间复杂度分析
- 🎉2-归并排序 - 分治合并、稳定排序、链表排序、递归树
- 🎉3-堆排序 - 大顶堆/小顶堆、堆化过程、原地排序、Top K 问题
- 🎉4-冒泡排序 - 交换排序、优化版本、鸡尾酒排序、教学用途
- 🎉5-选择排序 - 选择类排序、交换次数少、不稳定排序、堆排序对比
- 🎉6-插入排序 - 插入类排序、二分插入优化、小数据量首选、近乎有序 O(n)
- 🎉7-二分查找 - 有序数组查找、边界问题、lower_bound/upper_bound、查找边界
- 🎉12-限流算法 - 计数器/滑动窗口/令牌桶/漏桶算法、Sentinel、Redis 分布式限流、Guava RateLimiter
- 🎉13-布隆过滤器 - 概率型数据结构、缓存穿透防护、误判率计算、计数布隆过滤器、Guava/RedisBloom
- 🎉14-一致性哈希 - 哈希环、虚拟节点、数据倾斜处理、Redis Cluster、Nginx 负载均衡、Ketama 算法
- 🎉15-负载均衡算法 - 轮询/加权轮询/随机/最少连接/源地址哈希、Ribbon、Nginx、Kubernetes Service
- 🎉16-分布式ID生成算法 - Snowflake、Leaf(号段模式/Snowflake模式)、美团/百度/滴滴方案、时钟回拨
- 🎉17-分布式锁算法 - Redis RedLock/Redisson、数据库排他锁、Zookeeper Curator、etcd、锁续期、死锁处理
- 🎉18-跳表 - 概率性多层链表、Redis ZSet 实现、Java ConcurrentSkipListMap、LevelDB MemTable、范围查询
- 👽javassist官网:官方指南
- 👽javaagent编程指南
- 👽1.读、写字节码
- 👽2.ClassPool类池
- 👽3.ClassLoader类加载
- 👽4.Introspection and customization自省和定制
- 1.:tada:面试常问题目
- 🌰并发源码解读类
- 1.AQS:
AbstractQueuedSynchronizer - 2.重入锁:
ReentrantLock
- 1.AQS:
- 🌰Java并发编程核心机制 - volatile、synchronized、CAS、ThreadLocal、CompletableFuture、并发集合
- 🌊.MySql存储引擎
- 🌊.InnoDB存储引擎
- 🌊.MySQL数据库锁、事务隔离级别详解
- 🌊.Mysql主从复制
- 🌊.MySQL索引
- 🌊.MySQL优化篇
- 🌊.CentOS7安装MariaDB的流程步骤
- 🍂1-SpringBoot自动装配原理 - @SpringBootApplication、@EnableAutoConfiguration、条件注解、自定义Starter
- 🍂2-SpringBoot起步依赖与Actuator - Starter机制、Actuator监控、Metrics、Profiles、事件监听
- 🍂99-自定义启动器starter
- 🐯0-SpringCloud资料链接
- 🐯1-Eureka服务注册发现
- 🐯2-Ribbon负载均衡
- 🐯3-Feign负载均衡
- 🐯4-Hystrix熔断器
- 🐯5-HystrixDashboard仪表盘
- 🐯6-Zuul动态路由转发-过滤
- 🐯7-SpringCloud-Config配置
- 🐯8-SpringCloud-Config高可用架构
- 🐯9-SpringCloud-Bus消息总线
- 🐯999-附加参考资料
- 🚀Windows环境Ngin
- 🚀Nginx基础入门
- 🚀Nginx服务端404以及502等页面配置
- 🚀负载均衡实现实践
- 🚀Nginx实现虚拟主机、反向代理、负载均衡、高可用
- 🚀**Keepalived+Nginx搭建高可用服务**
- 🚀**Nginx配置文件nginx.conf全解**
- 🚀**如何给nginx添加外部模块**
- 🚀资料分享
- 🎉1-Jenkins Pipeline 流水线实战 - 声明式/脚本式 Pipeline、参数化构建、多环境部署、Shared Library、Blue Ocean 可视化、K8s 动态 Agent
- 🏦1.单例模式
- 🏦2.观察者模式
- 🏦3.适配器模式
- 🏦4.原型模式
- 🏦5.建造者模式
- 🏦6.工厂方法、抽象工厂模式
- 🏦7.模板模式
- 🏦8.状态模式
- 🏦9.策略模式
- 🏦10.对象池模式
- 🏦11.责任链模式
- 🏦12.装饰器模式
- 🍅Redis内存淘汰策略
- 🍅Redis数据类型以及数据结构实现
- 🍅Redis缓存
- 🍅Redis哨兵-复制
- 🍅Redis-Cluster集群
- 🍅Redis分布式锁
- 🍅Redis持久化
- 🍅Redis应用场景分析
- 🍅Redis-conf配置文件解析
- 🍅Redis运维系统命令
- 1-Kafka基础
- 2-Kafka核心知识与实战 - 生产者消费者设计、副本机制、事务消息、Spring Kafka集成、性能调优
- 🎉3-Kafka高级特性与源码分析 - 幂等生产者、事务消息、消费者再均衡、ISR副本同步、日志存储、精确一次语义、源码分析
-
👲参与开源
计划内容:Tomcat 架构原理、连接器(Connector)、容器(Container)、类加载机制、线程模型、性能调优、嵌入式 Tomcat 启动流程
计划内容:HttpClient 连接池配置、请求超时设置、SSL/TLS 配置、代理设置、异步请求、连接复用与 Keep-Alive 机制
-
🎽基础
-
🎽高级
- 🏃1.ZK概览
- 🏃2.了解Zk与Zk集群配置、主从模式案例演示
- 🏃3.使用Zk的API进行开发
- 🏃4.监听节点的状态变更、分配任务
- 🏃5.ZooKeeper内部原理--群首选举等
-
RPC
- Protobuf
-
🐧[7- Linux环境下的各种常用开发软件安装教程](Linux/7- Linux环境下的各种常用开发软件安装教程.md)
-
1.概览
-
Lua 编程语言
- bean转String
- String转bean
- List转String
- String转List
- Map转String
- String转Map
- Mockito基础
- Mockito高级
- Mockito集成
- 00-什么是云原生 - 云原生概念、CNCF、容器化、微服务、DevOps
- 🎉1-Kubernetes容器编排基础 - K8s 架构、Pod/Deployment/Service/Ingress、Spring Boot 集成、HPA 自动扩缩容
专为 Java 面试准备的知识汇总,覆盖阿里、字节、腾讯等大厂高频考点:
- 必会排序:快速排序、归并排序、堆排序(手写代码 + 时间复杂度分析)
- 必会查找:二分查找及变体(查找第一个/最后一个、旋转数组查找)
- 高频 DP:爬楼梯、最长递增子序列、最长公共子序列、0-1 背包
- 工程算法:一致性哈希、限流算法、布隆过滤器、分布式锁(场景题)
- 集合框架:HashMap 源码(扰动函数、扩容、树化)、ConcurrentHashMap 分段锁/CAS
- 并发编程:AQS 原理、ReentrantLock 与 synchronized 对比、线程池参数与拒绝策略
- JVM:内存模型、GC 算法(CMS/G1/ZGC)、类加载机制、OOM 排查
- Spring:IOC/AOP 原理、事务传播机制、循环依赖解决、Bean 生命周期
- SpringBoot:自动装配原理、Starter 自定义、Actuator 监控
- SpringCloud:Eureka 服务发现、Ribbon 负载均衡、Hystrix 熔断、Gateway 网关
- Redis:缓存穿透/击穿/雪崩解决方案、持久化 RDB/AOF、Cluster 分片、分布式锁 Redisson
- RocketMQ:消息模型、事务消息、顺序消息、重复消费、消息堆积处理
- MySQL:索引原理(B+树)、事务隔离级别、MVCC、慢 SQL 优化、分库分表
- 分布式理论:CAP/BASE、分布式事务(2PC/3PC/TCC/Seata)、幂等性设计
- 高并发:限流降级(Sentinel)、秒杀系统设计、短链系统、排行榜设计
- 微服务:服务拆分原则、注册中心选型、配置中心、链路追踪(SkyWalking)
- 网络:TCP/HTTP 原理、Netty 线程模型、WebSocket、长连接与短连接
- 单元测试:JUnit 5、Mockito、Spring Boot Test、TDD、代码覆盖率
- 安全:JWT、OAuth2、HTTPS、SQL注入、XSS、CSRF防护
- 性能优化:JVM调优、SQL优化、缓存优化、JMeter压测
-
初中级Java工程师技术栈(建设中)
欢迎提交 PR 或 Issue,共同完善这份 Java 技术 CookBook:
- Fork 本仓库
- 创建你的分支:
git checkout -b feature/your-feature - 提交改动:
git commit -am 'Add some feature' - 推送到分支:
git push origin feature/your-feature - 创建 Pull Request
- 文档采用 Markdown 格式,代码块标注语言类型
- 图片放在
pictures/目录,使用相对路径引用 - 新增文档后同步更新本 README.md 的导航索引
- 保持与现有文档风格一致(标题层级、代码注释、ASCII 图示)
- Tomcat 架构与调优专题
- HttpClient4 高级用法
- Jenkins Pipeline 流水线
- Kafka 高级特性与源码分析
- Docker / Kubernetes 容器化专题
- Seata 分布式事务实战
- ELK 日志采集与分析
- Prometheus + Grafana 监控体系
常用技术术语速查:
| 术语 | 说明 |
|---|---|
| QPS | 每秒查询数(Queries Per Second) |
| TPS | 每秒事务数(Transactions Per Second) |
| RT | 响应时间(Response Time) |
| CAP | 一致性、可用性、分区容错性定理 |
| BASE | 基本可用、软状态、最终一致性 |
| ACID | 原子性、一致性、隔离性、持久性 |
| OOM | 内存溢出(Out Of Memory) |
| GC | 垃圾回收(Garbage Collection) |
| IO | 输入/输出,常指磁盘/网络 IO |
| NIO | 非阻塞 IO(New IO) |
| AIO | 异步 IO(Asynchronous IO) |
| RPC | 远程过程调用(Remote Procedure Call) |
| SOA | 面向服务架构(Service Oriented Architecture) |
| ESB | 企业服务总线(Enterprise Service Bus) |
| CI/CD | 持续集成/持续部署 |
| SLA | 服务等级协议(Service Level Agreement) |