用 Remotion 可视化复杂算法和内部状态流。为技术极客打造的可编程电影化演示。
通过四条可滑动指针(position、limit、capacity、mark)可视化 NIO ByteBuffer 状态机。动态演示 allocate、write、flip、get、clear、compact 操作——每步操作都会改变指针位置和缓冲区颜色状态。
展示 ConcurrentHashMap 如何进行无锁协助扩容。旧数组满载时,每个槽位被标记为 ForwardingNode(红色)。多个线程各自认领不同的 stride 段,通过 CAS 并发迁移节点到两倍大小的新数组,直到全部槽位完成迁移,新数组正式上线。
以分屏形式展示 DirectByteBuffer 的完整生命周期。左侧为 JVM 堆(橙色),右侧为堆外内存(深蓝)。allocateDirect() 在堆中建立引用并桥接到 Native Memory。当引用失去强引用时,幽灵般的 Cleaner(PhantomReference)出现并回收堆外内存,整个过程无需 GC 介入。
追踪 HashMap.put() 的完整链路:计算 hashCode(青色)、扰动函数 h^(h>>>16)(紫色闪光)、桶索引计算 (n-1)&hash(黄色)、链表尾插(蓝色),以及 8 个节点触发树化,链表转换为红黑树。
用于验证动画基础设施链路的最小示例。标题淡入、从 80% 缩放到 100%,结尾轻微淡出。
可视化 LinkedHashMap 实现 LRU 缓存淘汰的过程。节点按访问顺序排列在双向链表中。get() 将节点移到链表尾部;put() 超出容量时,最久未访问的头部节点被 removeEldestEntry() 淘汰。