🔧 运行原理图解

把"似懂非懂"的概念变成清晰的画面——一个请求进来谁在执行?数据住在哪里?代码怎么一步步跑起来?

大量 SVG 流程图 + 类比 + IDE 代码窗口 + 面试速答

这个板块解决什么问题?

学了很多 API 和语法,但对运行时的画面感缺失:

这个板块用大量图解把这些问题画清楚——让概念变成画面,从"填鸭记忆"变成"真正理解"。

01
🌐
一个请求的完整旅程 — Java 后端运行原理
从浏览器发出 HTTP 请求 → Tomcat 线程池分配线程 → DispatcherServlet 路由 → AOP 代理拦截 → Service 执行 → MyBatis 查数据库 → 返回。每一步都是谁在干活,变量住在哪个内存区域。含毫秒级完整时间线。
进程 vs 线程 Tomcat 线程池 AOP 代理真相 JVM 内存快照 请求时间线
02
🧠
JVM 内存模型 — 一个对象的一生
堆/栈/方法区/程序计数器各存什么?new 的时候发生了什么?对象从 Eden 到老年代的完整旅程。GC 怎么判断对象该回收?OOM 是怎么回事?
四大内存区域 对象创建过程 GC 可视化
03
🌱
Spring 运行真相 — Bean 生命周期与 AOP
Bean 从扫描到就绪的完整流水线。AOP 代理是怎么生成的?@Transactional 为什么有时失效?CGLIB vs JDK 动态代理。一次请求从 Controller 到 DB 的完整代理链路。
Bean 生命周期 AOP 代理原理 @Transactional 失效 CGLIB 原理
04
💚
Vue 3 运行时全揭秘
createApp → mount 做了什么?Proxy 怎么拦截读写?track/trigger 怎么建立依赖映射?虚拟 DOM diff 怎么工作?nextTick 到底在等什么?computed 的缓存机制。
Proxy 响应式 依赖收集 虚拟 DOM diff nextTick 原理
05
⚛️
React 运行时全揭秘
createRoot → render 做了什么?Fiber 架构为什么需要?Render/Reconciliation/Commit 三阶段。setState 批处理机制。Hooks 的数据到底存在哪(Fiber 链表)。React vs Vue 对比。
Fiber 架构 渲染三阶段 Hooks 存储原理 React vs Vue
06
🔴
一个 Redis 命令的完整旅程
Client 发命令 → 单线程事件循环(epoll) → 命令表查找 → 执行 → 返回。五种数据结构内部长什么样?RDB/AOF 持久化怎么工作?主从复制 + 哨兵选举完整流程。
单线程事件循环 I/O多路复用 数据结构内部 RDB/AOF 主从 + 哨兵
07
🐬
一条 SQL 的完整旅程 — MySQL 执行原理
SQL → Parser → Optimizer → Executor → InnoDB → Buffer Pool → B+Tree → 磁盘。索引查找的三条路径。事务 WAL 两阶段提交。MVCC 版本链。行锁/间隙锁/死锁。
SQL执行流水线 B+Tree 查找 WAL 事务 MVCC 可视化 锁运行流程
08
🌐
从 URL 到像素 — 浏览器渲染全链路
URL → DNS → TCP → HTTP → HTML解析 → DOM/CSSOM → Render Tree → Layout → Paint → Composite。V8 引擎怎么编译 JS?Event Loop 微任务/宏任务执行顺序。触发 Reflow vs Repaint。
渲染管线 DOM/CSSOM Layout→Paint V8 + Event Loop
09
🐳
容器到底在跑什么 — Docker 运行原理
容器 vs 虚拟机到底啥区别?Namespace 六大隔离墙。Cgroup 限电限水。UnionFS 千层饼 + Copy-on-Write。从 Dockerfile → Image → Container 完整流程。Bridge 网络怎么通。
Namespace 隔离 Cgroup 限制 镜像分层 COW 原理 容器网络
10
🔗
一个请求跨越多个服务 — 分布式全链路
Gateway → Service A → RPC → Service B → MQ → Service C。Nacos 服务注册/发现/心跳。负载均衡策略。熔断状态机(CLOSED→OPEN→HALF-OPEN)。Sentinel 限流。Sleuth 链路追踪。
服务注册发现 负载均衡 熔断限流 链路追踪
11
🔍
Java 反射与动态代理 — Spring "魔法"的底层原理
反射 = X光透视,运行时看穿对象内部的一切(private 也不例外)。动态代理 = 替身演员,在你不知道的地方拦截方法调用。Spring 的 IoC 创建 Bean、@Autowired 注入、AOP 代理、@Transactional 事务,全部依赖反射+动态代理。getDeclaredMethods vs getMethods、JDK Proxy vs CGLIB、反射性能、破坏单例、Java 9 模块系统限制。
反射核心API Spring如何用反射 JDK动态代理 CGLIB代理 性能与安全

📖 推荐阅读顺序

  1. 先读 ① Java 请求全链路 — 建立整体认知:一个请求从浏览器到数据库再回来,每一步谁在执行。
  2. 再读 ② JVM 内存模型 — 深入理解数据住在哪:堆/栈/方法区,为什么局部变量线程安全。
  3. 然后读 ③ Spring 运行真相 — 理解 Bean 和 AOP 代理,搞清楚 @Transactional 的原理和坑。
  4. ④ 和 ⑤ 选你的技术栈 — Vue 用户读 04,React 用户读 05,或两个都读对比学习。
  5. ⑥ Redis 请求全链路 — 理解缓存层:单线程事件循环、数据结构内部、持久化、主从复制。
  6. ⑦ MySQL 查询全链路 — 理解存储层:SQL 执行流水线、B+Tree、Buffer Pool、事务 WAL、锁。
  7. ⑧ 浏览器渲染全链路 — 理解前端渲染:从 URL 到像素的完整管线、Event Loop、Reflow vs Repaint。
  8. ⑨ Docker 容器运行原理 — 理解部署层:Namespace/Cgroup/UnionFS,容器怎么跑起来的。
  9. ⑩ 分布式请求全链路 — 理解微服务层:服务注册发现、负载均衡、熔断限流、链路追踪。
  10. ⑪ Java 反射与动态代理 — 理解 Spring "魔法"的底层:反射如何让 IoC/AOP 成为可能,JDK Proxy vs CGLIB,反射的性能和安全陷阱。