Add hashmap-vs-concurrenthashmap module: JDK 25 sizeCtl/treeify internals, forced and measured lost updates

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017ic4b7rnC7jppGGdHGESvy
This commit is contained in:
2026-10-28 18:07:37 +00:00
co-authored by Claude Sonnet 5.5
parent 715036b640
commit f80e1079a8
24 changed files with 958 additions and 0 deletions
@@ -0,0 +1,29 @@
Constants read by reflection from the running JDK's own HashMap and ConcurrentHashMap
=====================================================================================
runtime: 25.0.5+8-LTS (Eclipse Adoptium)
java.util.HashMap
DEFAULT_INITIAL_CAPACITY = 16
MAXIMUM_CAPACITY = 1073741824
DEFAULT_LOAD_FACTOR = 0.75
TREEIFY_THRESHOLD = 8
UNTREEIFY_THRESHOLD = 6
MIN_TREEIFY_CAPACITY = 64
java.util.concurrent.ConcurrentHashMap
DEFAULT_CAPACITY = 16
MAXIMUM_CAPACITY = 1073741824
LOAD_FACTOR = 0.75
DEFAULT_CONCURRENCY_LEVEL = 16
TREEIFY_THRESHOLD = 8
UNTREEIFY_THRESHOLD = 6
MIN_TREEIFY_CAPACITY = 64
MIN_TRANSFER_STRIDE = 16
RESIZE_STAMP_BITS = 16
RESIZE_STAMP_SHIFT = 16
MAX_RESIZERS = 65535
MOVED = -1
TREEBIN = -2
RESERVED = -3
HASH_BITS = 2147483647