INDEX · SourceCode
源码分析总索引
这里放什么:每篇聚焦一个类/结构/机制,形式统一:一个代码块,真实源码 + 只点关键设计和坑的行内注释,不分点。开源项目(JDK/Redis/Spring/MyBatis)写真源码;Claude Code 是未公开实现,只写架构解读、引签名级片段、源码不进仓。
八大块
| 块 | 语言 | 讲什么 | 索引 |
|---|---|---|---|
| JAVA | Java | JDK 源码:集合、JUC 并发、JVM、基础类型 | JAVA 索引 |
| Redis | C | 底层数据结构 + 对象系统 + 事件循环/编码转换/过期淘汰 | Redis 索引 |
| Spring | Java | 核心机制:IOC、Bean 创建、AOP、事务、Boot 启动、MVC | Spring 索引 |
| MyBatis | Java | Mapper 代理、SqlSession 与缓存、配置解析、Executor 链 | MyBatis 索引 |
| Tomcat | Java | 从 socket 字节流到 Servlet.service 的请求处理链 | 请求处理链 |
| HikariCP | Java | 连接池为什么快:ConcurrentBag 三级查找与无锁路径 | 连接池核心 |
| Lettuce | Java | Redis Java 客户端:Netty 管线上的命令编解码与按序配对 | 客户端与命令管线 |
| Claude Code | TypeScript | agent 架构:工具抽象、主循环、权限、子代理 | Claude Code 索引 |
另有两页横向辑:数据结构源码(单文件连读) 是 JDK 集合的早期连读版,逐类拆分后保留作对照;基础使用 是线程创建等使用层写法的速查。
内容速览
JAVA —— 集合(Collection 接口/ArrayList/LinkedList/HashMap/HashSet/LinkedHashMap/TreeMap/ConcurrentHashMap/CopyOnWriteArrayList/ArrayDeque/PriorityQueue)、JUC(锁 AQS+ReentrantLock+ReentrantReadWriteLock+LockSupport、同步器 CountDownLatch/Semaphore/CyclicBarrier、原子 AtomicInteger/LongAdder 与 ThreadLocal、线程池 ThreadPoolExecutor/ScheduledThreadPoolExecutor/FutureTask 与队列 ArrayBlockingQueue/LinkedBlockingQueue)、JVM(Thread/ClassLoader/Class)、基础(String/StringBuilder/Integer/Object)。
Redis —— 结构:SDS、dict、skiplist、intset、listpack、quicklist、rax、stream、HyperLogLog、redisObject;机制:ae 事件循环、zset 编码转换、过期与淘汰。
Spring —— IOC-refresh 十二步、Bean 创建 doCreateBean 主线、循环依赖三级缓存、AOP 动态代理、@Transactional 原理、SpringBoot 启动与自动配置、SpringMVC DispatcherServlet。
MyBatis —— Mapper 接口动态代理、SqlSession 与一/二级缓存、配置解析与 Configuration、Executor 执行链。
Tomcat / HikariCP / Lettuce —— 请求怎么进来(Tomcat 连接器到过滤器链)、连接怎么拿(HikariCP ConcurrentBag)、缓存怎么访问(Lettuce 命令管线),一次后端请求的三段基建。
Claude Code —— Tool 抽象、内置工具全景、agent 主循环、权限系统、任务与子代理。
主线索
Java 是地基(集合/并发/JVM) → Spring + MyBatis 是后端框架两根柱子,都靠 JDK 动态代理(见 AOP 动态代理 与 Mapper 动态代理,同一套 Proxy 机制) → Tomcat 收请求、HikariCP 管连接、Lettuce 连缓存,是一次请求真正流经的基建 → Redis 是存储层的 C 实现 → Claude Code 是一套完整 agent 系统的架构范本。