Skip to content

Byron4j/CookBook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

328 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JAVA高级架构师技术栈 CookBook

GitHub Release GitHub Stars License Last Commit

任何技能都可以通过"刻意练习"达到融会贯通的境界。

就像烹饪一样,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 设计模式 数据结构与算法 限流算法 布隆过滤器 一致性哈希 分布式锁 负载均衡 工程实践 面试准备


学习深度分层(基础 → 中级 → 高级 → 资深专家)

1) 基础层

目标:夯实 Java 基础语法、常用机制与基础框架认知。

  • 推荐先读:Java核心(枚举、注解、反射、动态代理)
  • 配套基础:数据结构和算法Spring/1-IOC相关.md
  • 产出能力:能独立完成常规业务编码与基础问题排查

2) 中级层

目标:形成并发、JVM、数据库与主流框架的系统理解。

  • 推荐重点:Java核心/线程池JVMSpringAOPSpring事务MyBatisRedis
  • 代码建议:阅读 src/main/java/org/byron4j/cookbook/javacore
  • 产出能力:能负责模块设计、性能基础优化与常见故障定位

3) 高级层

目标:掌握高并发与分布式系统核心组件及治理能力。

  • 推荐重点:分布式高并发SpringCloudRocketMQNginxZookeeper
  • 代码建议:阅读 src/main/java/org/byron4j/cookbook/nettyrocketmqzk
  • 产出能力:能完成服务治理、限流降级、消息异步化与高可用设计

4) 资深专家层

目标:建立架构方法论与源码级分析、性能调优与工程治理能力。

  • 推荐重点:架构/内容/架构内容.md架构/高可用架构/云原生RocketMQ源码片段阅读javassist指南
  • 综合能力:架构权衡、容量评估、可观测性建设、复杂问题根因分析
  • 作者向建议:持续维护目录一致性与版本化标记,保持"知识图谱 + 示例代码"同步演进

学习深度分层(基础 → 中级 → 高级 → 资深专家)

1) 基础层

目标:夯实 Java 基础语法、常用机制与基础框架认知。

  • 推荐先读:Java核心(枚举、注解、反射、动态代理)
  • 配套基础:数据结构和算法Spring/1-IOC相关.md
  • 产出能力:能独立完成常规业务编码与基础问题排查

2) 中级层

目标:形成并发、JVM、数据库与主流框架的系统理解。

  • 推荐重点:Java核心/线程池JVMSpringAOPSpring事务MyBatisRedis
  • 代码建议:阅读 src/main/java/org/byron4j/cookbook/javacore
  • 产出能力:能负责模块设计、性能基础优化与常见故障定位

3) 高级层

目标:掌握高并发与分布式系统核心组件及治理能力。

  • 推荐重点:分布式高并发SpringCloudRocketMQNginxZookeeper
  • 代码建议:阅读 src/main/java/org/byron4j/cookbook/nettyrocketmqzk
  • 产出能力:能完成服务治理、限流降级、消息异步化与高可用设计

4) 资深专家层

目标:建立架构方法论与源码级分析、性能调优与工程治理能力。

  • 推荐重点:架构/内容/架构内容.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数据结构和算法RedisSpring设计模式分布式系统
  • 作者/维护者:优先维护 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

推荐阅读顺序(可跳转)

路线 A:基础到中级

  1. 数据结构和算法
  2. JAVA核心高级知识点
  3. Spring
  4. MySQL
  5. Redis

路线 B:中级到高级

  1. JVM
  2. SpringCloud
  3. RocketMQ
  4. NIO/Netty
  5. Zookeeper

路线 C:高级到资深专家

  1. 架构
  2. Nginx
  3. Maven
  4. Javassist
  5. 设计模式

JAVA程序猿笔试面试干货分享

IDEA-2019-1永久激活教程

刷题吧

数据结构和算法

数据结构

  • 🎉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、查找边界

图算法

  • 🎉8-深度优先搜索 - DFS 递归/迭代实现、回溯算法、路径搜索、连通性判断、拓扑排序
  • 🎉9-广度优先搜索 - BFS 队列实现、层级遍历、无权图最短路径、社交网络分析

算法思想

  • 🎉10-动态规划 - 最优子结构、重叠子问题、无后效性、爬楼梯、0-1 背包、最长公共子序列
  • 🎉11-贪心算法 - 贪心选择性质、活动选择问题、霍夫曼编码、分数背包、区间调度

工程实践算法(Java 技术栈)

  • 🎉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、范围查询

Git

Javassist

JAVA面试汇总

JAVA核心高级知识点

🌰SE专题

🌰并发专题

  • 🌰并发源码解读类
    • 1.AQS: AbstractQueuedSynchronizer
    • 2.重入锁:ReentrantLock
  • 🌰Java并发编程核心机制 - volatile、synchronized、CAS、ThreadLocal、CompletableFuture、并发集合

XML

MySQL

Spring

SpringBoot

SpringCloud

Nginx

Maven

Jenkins

设计模式

MyBatis

Redis

Kafka

RocketMQ

NIO/Netty

Tomcat(建设中)

计划内容:Tomcat 架构原理、连接器(Connector)、容器(Container)、类加载机制、线程模型、性能调优、嵌入式 Tomcat 启动流程

HttpClient4(建设中)

计划内容:HttpClient 连接池配置、请求超时设置、SSL/TLS 配置、代理设置、异步请求、连接复用与 Keep-Alive 机制

  • 🎽基础

  • 🎽高级

JVM

Zookeeper

Dubbo

Atomikos分布式事务方案

Code Refactoring(代码重构)

Linux

Python3

JSON

net.sf.json

Gson

应用场景示例

  • bean转String
  • String转bean
  • List转String
  • String转List
  • Map转String
  • String转Map

Mockito

分布式配置中心

百度Disconf

架构

🏡SOA面向服务架构

🏡微服务

外部资源

🏡云原生

面试专区

专为 Java 面试准备的知识汇总,覆盖阿里、字节、腾讯等大厂高频考点:

数据结构与算法面试

  • 必会排序:快速排序、归并排序、堆排序(手写代码 + 时间复杂度分析)
  • 必会查找:二分查找及变体(查找第一个/最后一个、旋转数组查找)
  • 高频 DP:爬楼梯、最长递增子序列、最长公共子序列、0-1 背包
  • 工程算法:一致性哈希、限流算法、布隆过滤器、分布式锁(场景题)

Java 基础面试

  • 集合框架: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压测

研发管理

Scrum

如何贡献

欢迎提交 PR 或 Issue,共同完善这份 Java 技术 CookBook:

  1. Fork 本仓库
  2. 创建你的分支git checkout -b feature/your-feature
  3. 提交改动git commit -am 'Add some feature'
  4. 推送到分支git push origin feature/your-feature
  5. 创建 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)

精华资源链接阅读

GitHub资源分享

Star History

Star History Chart

About

🎉🎉🎉JAVA高级架构师技术栈==任何技能通过 “刻意练习” 都可以达到融会贯通的境界,就像烹饪一样,这里有一份JAVA开发技术手册,只需要增加自己练习的次数。🏃🏃🏃

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors