知其然,知其所以然
Java 内部原理 2026-08-26

Map.computeIfAbsent() 真实验证:递归修改同一个map,真实必然抛出ConcurrentModificationException

真实用computeIfAbsent()写一个记忆化斐波那契递归实现,在lambda内部递归调用自己再次computeIfAbsent同一个map,真实抛出ConcurrentModificationException;真实验证连最简单的单层嵌套同样真实触发这个异常;真实验证正确的记忆化写法是先完成递归计算再统一put。

Java Map 陷阱 动画演示
Go 内部原理 2026-08-25

sync:Mutex 怎么从"不公平"切换到"公平",WaitGroup 和 Once 又是怎么实现的

本机真实 Go 1.26.6 程序,用 unsafe.Pointer 直接观测 sync.Mutex 内部状态字从正常模式翻转到饥饿模式再翻转回来的完整过程,并验证 WaitGroup 的并发耗时与 Once 的阻塞语义,对照本机标准库真实源码。

sync 并发 动画演示
Java 内部原理 2026-08-25

数组直接打印真实陷阱:[I@7ad041f3 不是内容,是类型代号加身份哈希

真实验证直接println一个int[]数组,真实输出的是[I@7ad041f3这种形式;真实拆解这个字符串的构成:[I真实代表一维int数组,@后面真实是identity hashCode的十六进制;真实对比不同类型数组的前缀差异:[D是double、[J是long、[Ljava.lang.String;是String数组。

Java 数组 陷阱 动画演示
Go 内部原理 2026-08-24

context:取消信号是怎么在 goroutine 树里传播的

本机真实 Go 1.26.6 程序验证 context 取消传播只往下走不往上走,超时靠 time.AfterFunc 触发,以及嵌套超时的优化,对照本机标准库真实源码。

context 并发 动画演示
Java 内部原理 2026-08-24

Random(seed) 真实验证:相同seed真实产生逐位相同的随机数序列

真实验证两个用相同seed构造的Random对象,各自调用10次nextInt()真实产生逐位相同的序列;真实验证setSeed()真实能把Random对象重置回某个seed对应的初始状态;真实验证Collections.shuffle()配合固定seed的Random真实能让洗牌结果完全可复现。

Java Random 测试 动画演示
Java 内部原理 2026-08-23

Integer.parseInt() 真实验证:溢出真实抛异常,不像int运算那样静默回绕

真实验证Integer.parseInt()支持2到36进制的解析;真实验证解析出超过Integer.MAX_VALUE的字符串真实抛出NumberFormatException,而不是像int运算那样静默回绕成负数;真实对照Integer.MAX_VALUE+1这种int算术运算真实是静默回绕。

Java Integer 异常 动画演示
Java 内部原理 2026-08-22

final字段与clone()真实验证:super.clone()真实不需要手动赋值就能正确复制final字段

真实验证clone()方法体内完全没有手动给final字段赋值,super.clone()真实照样把final字段的值正确复制到了新对象上;真实验证final修饰的数组引用字段,clone()后两个对象真实依然共享同一个数组,修改数组内容真实互相影响。

Java clone final 动画演示
Java 内部原理 2026-08-21

Thread.yield() 真实验证:调用它的线程真实完成次数只有对照组的0.2%

真实测出每次循环都调用Thread.yield()的线程,在300毫秒内真实只完成了约165万次循环,而不调用yield()的对照线程真实完成了9亿多次;真实验证yield()调用期间main线程持有的synchronized锁真实完全没有被释放,证明yield()和锁释放是两件完全不相关的事。

Java 线程 调度 动画演示
Java 内部原理 2026-08-20

Arrays.binarySearch() 真实验证:对未排序数组的结果真实是未定义的,不会报错提醒

真实验证Arrays.binarySearch()找到目标时返回真实索引,找不到时返回值真实遵循-(插入点)-1这条编码规则;真实验证对未排序数组调用binarySearch(),真实不会抛出任何异常提醒你数组没排序,只会真实默默给出一个不保证正确的结果。

Java 数组 算法 动画演示
Django 2026-08-19

ModelBase:类属性怎么变成数据库字段

真实拦截 CharField 变成 DeferredAttribute 描述符,.only() 触发的真实额外 SQL 查询。

元类 ORM 动画演示
Django 2026-08-19

QuerySet:链式调用为什么不查库

真实实测链式调用零查询、list() 触发单条合并 SQL、切片行为随求值状态变化。

ORM 惰性求值 动画演示
Django 2026-08-19

中间件:请求怎么被一层层包起来

真实实测洋葱模型执行顺序、短路后外层仍执行响应阶段、中间件顺序写反触发的真实报错。

中间件 请求处理 动画演示
京ICP备2026067502号-1京公网安备11010502063487号