Библиотека собеса по Java | вопросы с собеседований
6.29K subscribers
387 photos
8 videos
400 links
Вопросы с собеседований по Java и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/08c603b6

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Что такое Java Memory Model и зачем он нужен?

Java Memory Model (JMM) описывает, как потоки взаимодействуют через память и какие гарантии по видимости и упорядоченности операций даёт JVM.

Без JMM многопоточные программы работали бы непредсказуемо: один поток мог бы не увидеть изменения другого. JMM определяет правила: когда изменения в кэше процессора становятся «видимыми» другим потокам, и как работает синхронизация.

🐸 Библиотека собеса по Java

#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥1
Опишите работу ThreadLocal и его применения.

ThreadLocal — это механизм, который хранит значение отдельно для каждого потока. У каждого потока создаётся собственная копия переменной, изолированная от других потоков. Это удобно, когда данные должны быть доступны в рамках одного потока, но не должны шариться между потоками.

Применения:

Хранение контекста запроса в веб-приложениях (например, userId, transactionId).
Использование в SimpleDateFormat или других неконкурентных объектах без синхронизации.
Реализация thread-scope зависимостей в DI-фреймворках.

🐸 Библиотека собеса по Java

#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥2
Как работает ConcurrentHashMap?

ConcurrentHashMap использует сегментирование / распространённые блокировки (в новых версиях — на уровне бакета), что позволяет нескольким потокам читать и писать без полной блокировки карты. Операции get делаются без блокировки, put и remove используют ограниченную блокировку (или CAS) лишь на отдельных сегментах или узлах.

В отличие от Collections.synchronizedMap(...), который блокирует весь объект на каждую операцию, ConcurrentHashMap даёт более высокую конкурентность и масштабируемость.

🐸 Библиотека собеса по Java

#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2👏1