В чём разница: HashMap vs ConcurrentHashMap — ключевые различия?

Ответ

HashMap не потокобезопасен, допускает null-ключ/значение. ConcurrentHashMap потокобезопасен, не допускает null, в Java 7 использовал сегментную блокировку, в Java 8+ — CAS + synchronized на головах бакетов.

Разбор: HashMap не потокобезопасен и допускает null-ключ/значение; ConcurrentHashMap потокобезопасен и null запрещает. В Java 7 применялась сегментная блокировка, в Java 8+ — CAS и synchronized на головах бакетов, без единого глобального лока. Дистракторы либо приписывают HashMap потокобезопасность, либо вводят несуществующий глобальный ReentrantLock, либо путают с TreeMap.

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

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