VOL.001 · 创刊号Token 天团 API

Token 天团

—— 一份关于代码与生活的个人刊物 ——

Column · 专栏

Java 工兵连

Java 深水区逐篇讲透——并发、JVM、集合、Spring,一篇一个能背下来的认知。

军规:一篇只讲一个核心认知 · 生活类比开场 · 一句口诀一张图 · 可运行的最小示例 · 老兵点评 · 带走三句话。

No.01

线程池:别再 Executors 了——Java 工兵连第 1 篇

一家银行网点讲清线程池四步走:为什么队列满了才开临时线程、Executors 的两颗 OOM 地雷、七个参数的正确姿势,以及生产环境的监控三件套。

先核心,再排队;队满了,开临时;满上满,才拒绝

No.02

HashMap 的扩容与树化:容量恒为 2 的幂,一次只看一个 bit——Java 工兵连第 2 篇

宿舍分房讲透 HashMap:hash 扰动为什么异或高 16 位、扩容为什么不用重算 hash、树化阈值 8 是怎么从泊松分布算出来的,外加 1.7 头插成环的经典事故。

容量恒为 2 的幂;超过四分之三就搬家;同屋八个、楼够六十四,才上树

No.03

volatile 不是锁:管得住可见,保不住 ++——Java 工兵连第 3 篇

白板与便签讲透 Java 内存模型:可见性、禁止重排、happens-before,以及 count++ 为什么还是会丢;外加 DCL 单例必须加 volatile 的真正原因。

写即刷板,读必重看;一写多读找 volatile,读改写找锁或原子类

No.04

JVM 分代与 G1 一次讲透:多数盘子活不过一顿饭——Java 工兵连第 4 篇

从弱分代假说到 Eden/Survivor/Old 的复制与晋升,再到 G1 的 Region、SATB 和停顿预算模型——外加 GC 选型口诀和三条老兵调优立场。

小堆吞吐 Parallel,大堆低停 G1,超大堆极低停顿 ZGC

No.05

Spring 事务失效的八个瞬间:过代理、抛异常、认线程——Java 工兵连第 5 篇

门卫模型一口气回答:自调用为什么失效、受检异常为什么默认不回滚、跨线程为什么不算数——八条失效全挂在九字总纲上,外加 UnexpectedRollbackException 彩蛋。

过代理、抛异常、认线程——八条失效,条条挂在其中一句上

No.06

MySQL 索引最左前缀:索引是本字典——Java 工兵连第 6 篇

电话簿讲透联合索引:为什么 (a,b,c) 只认 a、ab、abc,范围查询为什么断后路,函数/运算/隐式转换为什么失效——附 EXPLAIN 的 key_len 判读法。

索引是字典,查找要按序;等值在前,范围殿后;函数运算转类型,模糊别带前导星

No.07

分布式锁的三重门:数据库稳、Redis 快、Redisson 全——Java 工兵连第 7 篇

从唯一索引占座到 SET NX EX 再到 watchdog:Redis 裸锁的三大坑逐一拆解与修复,外加「锁不是万能药」的终极提醒——幂等才是兜底。

加锁要原子,释放要验身,超时要续命;锁粒度锁到资源,兜底靠幂等

No.08

线程安全的集合怎么选:CHM 锁抽屉,COW 换公告——Java 工兵连第 8 篇

共享文件柜的四种管理制度讲透并发容器:CHM 的桶级锁与原子复合方法、COW 的快照读、阻塞队列的四组 API 与无界暗雷,外加老古董为什么该退役。

CHM 锁抽屉,复合用原子;COW 换公告,读多写少;队列传菜,一定有界

No.09

虚拟线程:等待不再占人——Java 工兵连第 9 篇

餐厅服务员模型讲透 Loom:为什么百万线程成为可能、为什么不要池化、ThreadLocal 为什么会爆炸、synchronized 钉人怎么回事,以及 Spring Boot 一键开启。

治等待不治计算;不池化、慎 ThreadLocal、synchronized 会钉人

特别篇

No.特

JDK 三十年进化史:从 1.1 到 23,三条主线一图记牢番外

背版本清单不如记主线:语言怎么写、运行时怎么跑、平台怎么交付。从 1997 到 2024 的每个版本核心内容,加上一句能背下来的口诀。

5 变语言,8 变写法,9 变结构,21 变线程;LTS:8 / 11 / 17 / 21 / 25

排片中

追更最省心的方式是订阅 RSS——新篇上线自动到手。