TechLog
ArticlesAnimationsAbout
TechLog
© 2026 TechLog蜀ICP备18025341号-1
Internals

HashMap put() — From hashCode to Bucket

SPECS

Duration
6.00s
FPS
30
Frames
180
Complexity
Medium

Traces the full path of a HashMap.put() call: computing hashCode (cyan), applying the perturbation function h^(h>>>16) (purple sparkle), calculating the bucket index via (n-1)&hash (yellow), tail-inserting into the chain (blue), and finally treeifying a bin of 8 nodes into a red-black tree.

JavaCollectionsHashMapHashData Structure

Similar Sequences

ByteBuffer Four-Pointer State Machine
Internals

ByteBuffer Four-Pointer State Machine

Visualizes the NIO ByteBuffer state machine with four sliding pointers: position, limit, capacity, and mark. Animates through allocate, write, flip, get, clear, and compact operations — each changing the pointer positions and buffer color state.

JavaNIOByteBufferBufferIO
View Breakdown
ConcurrentHashMap Cooperative Resize
Internals

ConcurrentHashMap Cooperative Resize

Shows how ConcurrentHashMap performs a lock-free cooperative resize. When the old table overflows, each slot is stamped with a ForwardingNode (red). Multiple threads claim separate stride segments and concurrently migrate entries to the new doubled array via CAS, until all slots are moved and the new table goes live.

JavaCollectionsConcurrentHashMapConcurrencyResize
View Breakdown
DirectByteBuffer Off-Heap Lifecycle
Internals

DirectByteBuffer Off-Heap Lifecycle

Shows the full lifecycle of a DirectByteBuffer in a split-screen view. The left side is the JVM heap (orange); the right is Native Memory (deep blue). allocateDirect() creates a heap reference and bridges to native memory. When the reference is GC-eligible, a ghost-like Cleaner (PhantomReference) appears and sweeps the native memory, freeing it without GC involvement.

JavaNIODirectByteBufferOff-HeapCleanerPhantomReference
View Breakdown