规格
可视化 LinkedHashMap 实现 LRU 缓存淘汰的过程。节点按访问顺序排列在双向链表中。get() 将节点移到链表尾部;put() 超出容量时,最久未访问的头部节点被 removeEldestEntry() 淘汰。
相关动画
通过四条可滑动指针(position、limit、capacity、mark)可视化 NIO ByteBuffer 状态机。动态演示 allocate、write、flip、get、clear、compact 操作——每步操作都会改变指针位置和缓冲区颜色状态。
展示 ConcurrentHashMap 如何进行无锁协助扩容。旧数组满载时,每个槽位被标记为 ForwardingNode(红色)。多个线程各自认领不同的 stride 段,通过 CAS 并发迁移节点到两倍大小的新数组,直到全部槽位完成迁移,新数组正式上线。
以分屏形式展示 DirectByteBuffer 的完整生命周期。左侧为 JVM 堆(橙色),右侧为堆外内存(深蓝)。allocateDirect() 在堆中建立引用并桥接到 Native Memory。当引用失去强引用时,幽灵般的 Cleaner(PhantomReference)出现并回收堆外内存,整个过程无需 GC 介入。