任何技能都可以通过"刻意练习"达到融会贯通的境界。
就像烹饪一样,
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、范围查询
- 🎉1-Git基础入门与核心概念 - 安装配置、SSH设置、文件状态、基础命令、远程仓库、.gitignore、标签管理
- 🎉2-Git分支管理与工作流 - 分支操作、合并策略、Git Flow、GitHub Flow、Trunk-Based、分支命名规范
- 🎉3-Git高级技巧与实战 - Stash暂存、Reset/Revert、Cherry-pick、交互式Rebase、Reflog、Bisect、Submodule、Git LFS
- 🎉4-Git多人协作与代码审查 - Pull Request流程、代码审查规范、冲突解决、Fork工作流、Issue关联、GitHub Actions
- 🎉5-Git与Jenkins自动构建集成 - Webhook配置、Pipeline集成、分支触发策略、Shared Library、Tag版本发布
- 🎉6-Git大型项目与微服务架构实践 - Monorepo vs Multirepo、增量构建、多服务协同发布、Git Hooks自动化
| 场景 | 推荐文档 |
|---|---|
| Git 入门 | 基础入门与核心概念 |
| 团队协作 | 分支管理与工作流 |
| 进阶技巧 | 高级技巧与实战 |
| 代码审查 | 多人协作与代码审查 |
| CI/CD | Jenkins自动构建集成 |
| 微服务 | 大型项目与微服务架构 |
- 👽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、并发集合
- 🎉1-MySQL索引原理与优化 - B+树原理、最左前缀原则、索引失效场景、执行计划分析、慢SQL优化、覆盖索引
- 🎉2-MySQL事务与锁机制 - ACID特性、隔离级别、MVCC原理、锁类型(行锁/间隙锁/临键锁)、死锁处理、乐观锁与悲观锁
- 🎉3-MySQL性能调优与故障排查 - 缓冲池优化、连接池配置、日志优化、慢SQL分析、锁问题排查、生产环境配置模板
- MySql存储引擎 - 存储引擎对比
- InnoDB存储引擎 - InnoDB架构与特性
- MySQL数据库锁、事务隔离级别详解 - 锁与隔离级别实战
- Mysql主从复制 - 主从复制原理与配置
- MySQL索引原理与慢SQL优化
- 🍂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-Maven基础入门与核心概念 - 安装配置、POM详解、生命周期、目录结构、常用命令、内置属性
- 🎉2-Maven依赖管理深度解析 - 依赖范围、传递依赖、依赖调解、版本管理、依赖排除、依赖分析
- 🎉3-Maven多模块项目实践 - 模块划分、父POM配置、聚合与继承、依赖关系、构建命令
- 🎉4-Maven常用插件详解 - 编译插件、测试插件、打包插件、代码质量插件、版本发布、Enforcer规则
- 🎉5-Maven仓库管理与私服配置 - 本地仓库、远程仓库、Nexus搭建、Artifactory配置、GitHub Packages
- 🎉6-Maven构建最佳实践与性能优化 - POM规范、并行构建、CI/CD集成、发布流程、常见问题解决
- 编写一个Maven插件 - 自定义插件开发、Mojo编写、插件测试
- Maven Profile配置 - Profile激活方式、多环境配置
- 🎉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副本同步、日志存储、精确一次语义、源码分析
-
👲参与开源
- 🎉1-Netty核心概念与架构 - Reactor线程模型、核心组件(EventLoop/Channel/Pipeline/Handler)、编解码器、心跳机制、粘包拆包处理
- Netty第一个程序示例 - 服务端与客户端示例
- Netty自定义传输协议 - 自定义协议编解码
- Netty登陆请求、验证登陆、获取响应示例 - 登录功能实现
计划内容:Tomcat 架构原理、连接器(Connector)、容器(Container)、类加载机制、线程模型、性能调优、嵌入式 Tomcat 启动流程
计划内容:HttpClient 连接池配置、请求超时设置、SSL/TLS 配置、代理设置、异步请求、连接复用与 Keep-Alive 机制
-
🎽基础
-
🎽高级
- 🎉1-JVM内存模型与垃圾回收 - 内存结构(堆/栈/方法区)、垃圾回收算法、收集器(G1/ZGC)、JVM参数速查
- 🎉2-JVM性能调优实战 - 内存配置、GC调优步骤、常见问题调优、生产环境配置案例
- 🎉3-JVM监控与故障排查 - jstat/jmap/jstack、Arthas在线诊断、CPU/内存/线程问题排查、Prometheus监控
- JVM参数 - 常用JVM参数速查
- jstat命令详解 - jstat命令使用详解
- JVM内存分配与回收策略案例 - 内存分配与回收实战案例
- 🏃1.ZK概览
- 🏃2.了解Zk与Zk集群配置、主从模式案例演示
- 🏃3.使用Zk的API进行开发
- 🏃4.监听节点的状态变更、分配任务
- 🏃5.ZooKeeper内部原理--群首选举等
- 🎉1-Dubbo核心概念与架构 - RPC原理、架构设计、注册中心(Nacos/Zookeeper)、协议与序列化、负载均衡、集群容错、超时重试
- Dubbo入门 - Dubbo基础入门
- Dubbo实战 - Dubbo实战案例
- Dubbo原理源码篇 - Dubbo源码分析
- RPC
- Protobuf
- 🎉4-Lua基础语法与核心概念 - 数据类型、变量、运算符、控制结构、函数、表(Table)、模块、协程
- 🎉5-Lua在Redis-OpenResty中的应用 - Redis Lua脚本(分布式锁/限流器)、OpenResty编程(请求处理/中间件)、Java集成
- Lua语言入门指南 - Lua语言基础入门
- Lua语言编程指南 - Lua编程进阶
- Lua编程高级 - Lua高级特性
- 🎉1-Linux系统管理与常用命令 - 目录结构、文件操作、用户管理、进程管理、网络管理、磁盘管理、包管理
- 🎉2-Shell脚本编程实战 - 变量、流程控制、函数、输入输出、错误处理、实战脚本(备份/监控/清理)
- 🎉3-Linux性能监控与故障排查 - CPU/内存/IO/网络监控工具、故障排查流程、性能优化建议
- 1-Linux基础
- 2-Linux用户磁盘管理
- 3-Linux的vi、vim使用
- 4-Linux的yum命令
- 5-yum源配置
- 6-常用操作快捷键
- [7-Linux环境下的各种常用开发软件安装教程](Linux/7- Linux环境下的各种常用开发软件安装教程.md)
- AWK脚本语言
- Shell基础教程
- Shell基本语法
- Shell运算符汇总
- Shell的echo、printf、test
-
1.概览
-
Lua 编程语言
- 🎉0-JSON框架概览与对比 - JSON发展历程、Jackson/Gson/Fastjson2对比、性能测试、安全分析、选型建议、迁移指南
- 🎉1-Jackson深度指南 - ObjectMapper配置、注解详解、树模型、流式API、自定义序列化器、视图、Mixin、Spring Boot集成、性能优化
- 🎉2-Gson使用指南 - TypeToken泛型处理、TypeAdapter自定义、@SerializedName/@Expose注解、树模型操作、Spring Boot集成
- 🎉3-Fastjson2使用指南 - 性能优化、JSONPath查询、JSONB二进制格式、安全配置、autoType白名单、Spring Boot集成
- 🎉5-SpringBoot-JSON集成最佳实践 - Jackson/Gson/Fastjson2集成、统一响应格式、自定义序列化器、JSON视图、安全配置、性能优化
| 场景 | 推荐框架 | 文档 |
|---|---|---|
| Spring Boot 项目 | Jackson | 深度指南 |
| 追求极致性能 | Fastjson2 | 使用指南 |
| Android 移动端 | Gson | 使用指南 |
| 企业级应用 | Jackson | 最佳实践 |
- 🎉1-单元测试基础与JUnit5 - 测试金字塔、JUnit 5架构、基础注解、参数化测试、嵌套测试、条件测试
- 🎉2-Mockito核心用法详解 - 创建Mock对象、设置返回值、参数匹配器、验证调用、Spy对象、ArgumentCaptor、BDD风格
- 🎉3-Mockito高级特性与最佳实践 - 深度Mock、静态方法Mock、构造函数Mock、Final类Mock、异步测试、AssertJ集成、测试构建器
- 🎉4-SpringBoot测试实战 - 单元测试、Web切片测试、DataJpa切片测试、JSON切片测试、集成测试、TestContainers
- 🎉5-测试覆盖率与质量保障 - JaCoCo配置、Checkstyle/SpotBugs/PMD、CI/CD集成、SonarQube、测试报告
| 场景 | 推荐文档 |
|---|---|
| JUnit 5 入门 | 单元测试基础与JUnit5 |
| Mock 依赖 | Mockito核心用法详解 |
| 高级 Mock | Mockito高级特性与最佳实践 |
| Spring Boot 测试 | SpringBoot测试实战 |
| 覆盖率与质量 | 测试覆盖率与质量保障 |
- 首次使用Mockito注解 - @Mock/@Spy/@Captor/@InjectMocks 基础
- 🎉1-加密算法基础与工程实践 - 对称加密(AES/ChaCha20)、非对称加密(RSA/ECC)、哈希算法(SHA/HMAC)、数字签名、TLS握手、Spring Boot集成、密钥管理
- 🎉2-Web安全与认证授权 - SQL注入、XSS、CSRF防护、JWT认证、OAuth2授权、HTTPS配置、Spring Security
- 🎉3-密码存储与哈希算法 - bcrypt/Argon2原理、密码策略、密码轮换、Spring Security集成
- 🎉4-国密算法与合规实践 - SM2非对称加密、SM3哈希、SM4对称加密、国密TLS配置、合规检查清单
- 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压测
50个真实生产环境问题案例,涵盖CPU、内存、磁盘、网络、数据库、JVM、中间件等场景
- 🎉0-生产问题处理总览 - 问题分类体系、排查通用流程、常用排查工具、50个案例索引
- 🎉1-CPU相关问题案例 - 案例1-8:正则表达式灾难性回溯、死循环、频繁GC、序列化CPU飙高、锁竞争
- 🎉2-内存相关问题案例 - 案例9-16:大List导致OOM、缓存未过期、文件流未关闭、线程泄漏、元空间溢出、堆外内存泄漏
- 🎉3-磁盘IO相关问题案例 - 案例17-22:日志打满磁盘、临时文件未清理、inode耗尽、IO等待、文件句柄泄漏
- 🎉4-网络连接相关问题案例 - 案例23-28:连接池耗尽、TIME_WAIT过多、CLOSE_WAIT泄漏、端口耗尽、DNS超时
- 🎉5-数据库相关问题案例 - 案例29-36:慢查询、锁等待、连接池耗尽、主从延迟、索引失效、死锁、深度分页
- 🎉6-JVM相关问题案例 - 案例37-42:频繁Full GC、GC停顿过长、类加载冲突、线程死锁、线程池耗尽、栈溢出
- 🎉7-中间件相关问题案例 - 案例43-50:缓存穿透/雪崩/溢出、MQ消息堆积/消费失败、Nginx 502/504、Feign超时
| 场景 | 推荐文档 | 案例范围 |
|---|---|---|
| CPU 飙高 | CPU相关问题案例 | 案例 1-8 |
| 内存溢出 | 内存相关问题案例 | 案例 9-16 |
| 磁盘问题 | 磁盘IO相关问题案例 | 案例 17-22 |
| 网络问题 | 网络连接相关问题案例 | 案例 23-28 |
| 数据库问题 | 数据库相关问题案例 | 案例 29-36 |
| JVM 问题 | JVM相关问题案例 | 案例 37-42 |
| 中间件问题 | 中间件相关问题案例 | 案例 43-50 |
-
初中级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) |