Объясните механизм, благодаря которому JVM переводит уже выполняющийся длинный цикл в машинный код, не дожидаясь выхода из метода.
База 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
При первом обращении к статическому полю класс неожиданно задерживает поток. Какой этап JVM выполняется перед использованием класса?
Что происходит с короткоживущим объектом, если JIT докажет, что он не покидает метод?
На G1 крупные массивы вызывают частые паузы при умеренной заполненности heap. Как размер одного объекта может привести к такому поведению?
Как JVM достигает глобальной остановки Java-потоков перед некоторыми операциями виртуальной машины?
Как JVM решает, какие методы переводить из интерпретируемого режима в машинный код?
Объясните, почему классы с одинаковым полным именем, загруженные двумя независимыми загрузчиками, считаются разными типами в JVM.
Сервис держит heap ниже установленного лимита, но RSS процесса постоянно растёт после обработки сетевых запросов. Какой механизм JVM может объяснить это расхождение?
В системе производители и потребители должны ожидать разные условия одной блокировки. Чем Condition при ReentrantLock принципиально отличается от wait/notify на одном мониторе?
При обновлении данных под ReentrantReadWriteLock как сохранить возможность чтения после записи, не открывая окно между блокировками?
Во время Object.wait() поток временно теряет монитор объекта или сохраняет его до пробуждения?
При чтении обычного поля long одним потоком во время записи этого поля другим потоком возможна ли атомарная ошибка чтения?
Очередь ThreadPoolExecutor заполнена, достигнут максимум потоков, а для отклонённых задач выбран CallerRunsPolicy. В каком потоке выполнится новая задача?
В сценарии с поэтапной обработкой, где число участников меняется, почему Phaser подходит лучше CountDownLatch?
В следующем коде задача завершается исключением. Определите, где окажется это исключение и почему оно не выводится обработчиком необработанных исключений потока.
import java.util.concurrent.*;
class Demo {
public static void main(String[] args) throws Exception {
ExecutorService pool = Executors.newSingleThreadExecutor();
Future<?> future = pool.submit(() -> {
throw new IllegalStateException("boom");
});
System.out.println("done");
pool.shutdown();
}
}
В следующем коде функция обновления записывает сообщение в журнал. Какой скрытый риск возникает при конкуренции нескольких потоков?
import java.util.concurrent.atomic.AtomicInteger;
class Demo {
static final AtomicInteger value = new AtomicInteger();
static int next() {
return value.updateAndGet(old -> {
System.out.println("old=" + old);
return old + 1;
});
}
}
Найдена ошибка: общий список обёрнут в Collections.synchronizedList, но его перебирают без внешней синхронизации. Почему это всё ещё небезопасно?
Разберите ленивую инициализацию singleton с double-checked locking: зачем ссылке на экземпляр нужен volatile?
После успешного Future.get() какие изменения, выполненные внутри задачи, обязан увидеть вызывающий поток?
При исключении внутри synchronized-блока кто и в какой момент освобождает монитор?
Показано 181–200 из 403