Зачем после оптимистичного чтения через StampedLock нужна проверка валидности stamp?
База Hintsage
Программирование Java
Язык Java, JVM и экосистема серверной разработки.
Темы раздела
Выберите подраздел
- 3 вопроса
Общие вопросы
Смешанные вопросы по Java.
Открыть раздел - 50 вопросов
Java Core
Базовая семантика языка, типы, методы, классы и ключевые конструкции.
Открыть раздел - 50 вопросов
ООП и система типов
Наследование, полиморфизм, интерфейсы, классы и разрешение методов.
Открыть раздел - 50 вопросов
Коллекции
Java Collections Framework, контракты, реализации и сложность операций.
Открыть раздел - 50 вопросов
Многопоточность
Java Memory Model, потоки, синхронизация и java.util.concurrent.
Открыть раздел - 50 вопросов
JVM и память
Загрузка классов, память JVM, GC, JIT и диагностика.
Открыть раздел - 50 вопросов
Generics
Параметризация типов, bounds, wildcards и стирание типов.
Открыть раздел - 50 вопросов
Stream API
Функциональные интерфейсы, streams, collectors и параллельная обработка.
Открыть раздел - 50 вопросов
Исключения
Иерархия исключений, обработка ошибок и управление ресурсами.
Открыть раздел
Практика
Вопросы: Программирование Java
В пуле потоков задача сохраняет данные в ThreadLocal, но не очищает их перед завершением. Какой эффект проявится при повторном использовании рабочего потока?
Сравните гарантии JMM для final-полей и обычных полей объекта, опубликованного без синхронизации.
После вызова Thread.start() какие гарантии видимости получает новый поток относительно действий создавшего потока до запуска?
Поток получает interrupt во время блокирующего ожидания: какое состояние и поведение следует ожидать после этого?
Какую гарантию видимости получают обычные записи, выполненные до записи в volatile-поле, после чтения этого поля другим потоком?
Разбор последствий: к чему приводит смена объекта, используемого как монитор, во время работы потоков?
Почему рекурсивный вызов computeIfAbsent для того же ключа в ConcurrentHashMap может привести к IllegalStateException?
В сценарии, где поток должен отказаться от ожидания блокировки по interrupt, почему ReentrantLock подходит лучше synchronized?
В чём риск проверять условие перед wait() без повторной проверки после пробуждения?
При неудаче CAS какой вывод делает поток о состоянии общего значения?
Объясните механизм повторного входа одного потока в уже захваченный им монитор synchronized.
В рабочей ситуации что происходит с ExecutorService после вызова shutdown()?
Представьте, что один поток создаёт объект с обычными полями и передаёт ссылку на него через несинхронизированное общее поле. Может ли другой поток увидеть ссылку, но не увидеть корректные значения этих полей?
Какую гарантию видимости получает потребитель после take() элемента, помещённого производителем в BlockingQueue?
При обходе списка через ListIterator требуется заменить текущий элемент. Какая семантика операции set позволяет сделать это без структурного изменения списка?
Как устроен итератор ConcurrentHashMap так, что он допускает параллельные изменения карты без ConcurrentModificationException?
Нужно удалить из списка все строки, начинающиеся с tmp, не ухудшая производительность при большом числе совпадений. Какой механизм реализации определяет сложность removeIf в этом коде?
import java.util.ArrayList;
import java.util.List;
List<String> files = new ArrayList<>();
for (int i = 0; i < 100_000; i++) {
files.add(i % 2 == 0 ? "tmp-" + i : "data-" + i);
}
files.removeIf(name -> name.startsWith("tmp-"));
На проекте нужен ограниченный LRU-кэш на стандартных коллекциях Java. Какой механизм LinkedHashMap позволяет автоматически удалять наименее недавно использованную запись?
При обработке записей через представление entrySet изменение объекта Map.Entry меняет исходную карту. Какой контракт представления объясняет это поведение?
Показано 221–240 из 403