Что такое ConcurrentHashMap Java 8?

Ответ

CAS + synchronized на головах бакетов. Treeify при 8 коллизиях. null запрещён. computeIfAbsent атомарен.

Разбор: ConcurrentHashMap Java 8 использует CAS для вставки в пустой бакет и synchronized на голове непустого бакета, превращает длинные цепочки в деревья при 8 коллизиях, запрещает null-ключи и null-значения, а computeIfAbsent выполняется атомарно. Ловушки — рудименты Java 7 (сегменты с ReentrantLock), допущение null или отрицание treeify/атомарности computeIfAbsent.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться