JV Java  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Разбор аварии JVM-приложения

Профессиональный тест по теме «Разбор аварии JVM-приложения»: сложные фрагменты кода, архитектурные компромиссы, диагностика и надёжность. Вопросы перемешаны: встречаются трассировка, ошибка компиляции, выбор правки, граничный сценарий и оценка инженерного компромисса. Базовая версия — Java 25 LTS; если версия не названа отдельно, используются устойчивые правила, совместимые с Java 21.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант; близкие ответы различаются стадией ошибки, порядком действий или границей контракта. После завершения вы увидите общий результат, результаты по 6 тематическим шкалам и объяснения.
Вопрос 1 из 30
Что произойдёт при вызове метода call() в показанном фрагменте?
JavaНеограниченные повторные попытки
static String remote() throws java.util.concurrent.TimeoutException {
    throw new java.util.concurrent.TimeoutException();
}
static String call() {
    while (true) {
        try { return remote(); }
        catch (java.util.concurrent.TimeoutException ignored) { }
    }
}
Вопрос 2 из 30
Как лучше исправить или прояснить поведение темы «Производительность и эксплуатация» в разделе «Разбор аварии JVM-приложения»?
BashПроизводительность и эксплуатация · фрагмент для анализа
# Фрагмент на ревью
java -Xmx32g -jar app.jar
# live set растёт на 500 MiB в час, контейнер имеет лимит 36 GiB
Вопрос 3 из 30
Какое ограничение механизма «Снимок кучи» нельзя упускать при работе с разделом «Разбор аварии JVM-приложения»?
BashСнимок кучи · фрагмент для анализа
# Минимальный пример
jcmd <pid> GC.heap_dump /var/secure/app-incident.hprof
Вопрос 4 из 30
Как точнее оценить пользу и цену решения по теме «Снимок кучи» в разделе «Разбор аварии JVM-приложения»?
Вопрос 5 из 30
Какой вывод точнее всего следует из результатов анализа снимка кучи?
BashСнимок кучи · фрагмент для анализа
jcmd <pid> GC.heap_dump /var/secure/app-incident.hprof
# анализатор:
# byte[120_000_000]: shallow 114 MiB, retained 114 MiB
# ResponseCache: shallow 2 MiB, retained 4.8 GiB; удерживает 3.2 млн объектов
Вопрос 6 из 30
Какой инженерный компромисс характерен для темы «Снимки потоков» в разделе «Разбор аварии JVM-приложения»?
Вопрос 7 из 30
Какой инженерный компромисс характерен для темы «Журналы GC» в разделе «Разбор аварии JVM-приложения»?
Вопрос 8 из 30
Как лучше исправить или прояснить поведение темы «Тестирование и диагностика» в разделе «Разбор аварии JVM-приложения»?
JavaТестирование и диагностика · фрагмент для анализа
// Фрагмент на ревью
stub.delayEveryCall(java.time.Duration.ofSeconds(5));
load.run(500);
assertThat(metrics.queueDepth()).isLessThan(100);
Вопрос 9 из 30
Какой инженерный компромисс характерен для темы «Производительность и эксплуатация» в разделе «Разбор аварии JVM-приложения»?
Вопрос 10 из 30
В каком дополнительном сценарии вывод о теме «Журналы GC» в разделе «Разбор аварии JVM-приложения» может оказаться неверным?
BashЖурналы GC · фрагмент для анализа
# Минимальный пример
java -Xlog:gc*,safepoint:file=/var/log/app/gc.log:time,uptime,level,tags:filecount=10,filesize=100m -jar app.jar
Вопрос 11 из 30
Какой вывод поддерживает такая последовательность записей журнала GC при стабильной нагрузке?
BashЖурналы GC · фрагмент для анализа
java -Xlog:gc*,safepoint:file=/var/log/app/gc.log:time,uptime,level,tags:filecount=10,filesize=100m -jar app.jar
# после GC: 4.1 GiB -> через час 4.6 GiB -> ещё через час 5.1 GiB
# профиль входной нагрузки не менялся
Вопрос 12 из 30
Какая правка точнее всего устраняет причину проблемы по теме «Снимки потоков» в разделе «Разбор аварии JVM-приложения»?
BashСнимки потоков · фрагмент для анализа
# Фрагмент на ревью
jcmd <pid> Thread.print -l
# повторить несколько раз и сравнить одинаковые стеки
Вопрос 13 из 30
На какое правило следует опираться при разборе темы «Поиск первопричины» в разделе «Разбор аварии JVM-приложения»?
Вопрос 14 из 30
На какое правило следует опираться при разборе темы «Тестирование и диагностика» в разделе «Разбор аварии JVM-приложения»?
Вопрос 15 из 30
Как поведёт себя фрагмент по теме «Производительность и эксплуатация» при разборе раздела «Разбор аварии JVM-приложения»?
BashПроизводительность и эксплуатация · фрагмент для анализа
java -Xmx32g -jar app.jar
# live set растёт на 500 MiB в час, контейнер имеет лимит 36 GiB
Вопрос 16 из 30
Какой вывод лучше всего объясняет повторяющиеся снимки потоков и рост очереди?
BashСнимки потоков · фрагмент для анализа
jcmd <pid> Thread.print -l
# три снимка с интервалом 10 с:
# 180 потоков WAITING в пуле, очередь стабильна
# 24 потока BLOCKED на одном monitor, очередь 12 000 -> 15 000 -> 18 000
Вопрос 17 из 30
Какое правило Java действует для темы «Снимок кучи» в разделе «Разбор аварии JVM-приложения»?
Вопрос 18 из 30
Какое замечание о сопровождении или производительности темы «Тестирование и диагностика» в разделе «Разбор аварии JVM-приложения» справедливо?
Вопрос 19 из 30
Какое правило Java действует для темы «Журналы GC» в разделе «Разбор аварии JVM-приложения»?
Вопрос 20 из 30
В каком дополнительном сценарии вывод о теме «Тестирование и диагностика» в разделе «Разбор аварии JVM-приложения» может оказаться неверным?
JavaТестирование и диагностика · фрагмент для анализа
// Минимальный пример
stub.delayEveryCall(java.time.Duration.ofSeconds(5));
load.run(500);
assertThat(metrics.queueDepth()).isLessThan(100);
Вопрос 21 из 30
Как лучше исправить или прояснить поведение темы «Снимок кучи» в разделе «Разбор аварии JVM-приложения»?
BashСнимок кучи · фрагмент для анализа
# Фрагмент на ревью
jcmd <pid> GC.heap_dump /var/secure/app-incident.hprof
Вопрос 22 из 30
Как лучше всего изменить call(), чтобы сбой удалённой операции не приводил к бесконечному активному циклу?
JavaИсправление политики повторных попыток
// Фрагмент на ревью
static String remote() throws java.util.concurrent.TimeoutException {
    throw new java.util.concurrent.TimeoutException();
}
static String call() {
    while (true) {
        try { return remote(); }
        catch (java.util.concurrent.TimeoutException ignored) { }
    }
}
Вопрос 23 из 30
Какой диагноз для кода по теме «Тестирование и диагностика» в разделе «Разбор аварии JVM-приложения» будет точным?
JavaТестирование и диагностика · фрагмент для анализа
stub.delayEveryCall(java.time.Duration.ofSeconds(5));
load.run(500);
assertThat(metrics.queueDepth()).isLessThan(100);
Вопрос 24 из 30
Какое ограничение механизма «Снимки потоков» нельзя упускать при работе с разделом «Разбор аварии JVM-приложения»?
BashСнимки потоков · фрагмент для анализа
# Минимальный пример
jcmd <pid> Thread.print -l
# повторить несколько раз и сравнить одинаковые стеки
Вопрос 25 из 30
На какое правило следует опираться при разборе темы «Снимки потоков» в разделе «Разбор аварии JVM-приложения»?
Вопрос 26 из 30
Какой граничный случай особенно важен для темы «Производительность и эксплуатация» в разделе «Разбор аварии JVM-приложения»?
BashПроизводительность и эксплуатация · фрагмент для анализа
# Минимальный пример
java -Xmx32g -jar app.jar
# live set растёт на 500 MiB в час, контейнер имеет лимит 36 GiB
Вопрос 27 из 30
Какое замечание о сопровождении или производительности темы «Поиск первопричины» в разделе «Разбор аварии JVM-приложения» справедливо?
Вопрос 28 из 30
Какое утверждение о механизме «Производительность и эксплуатация» верно в контексте раздела «Разбор аварии JVM-приложения»?
Вопрос 29 из 30
После выпуска новой версии резко выросла загрузка процессора. Откат вернул показатели к норме. Какой вывод корректно сделать на этом этапе?
Вопрос 30 из 30
Какое изменение сделает код по теме «Журналы GC» в разделе «Разбор аварии JVM-приложения» надёжнее?
BashЖурналы GC · фрагмент для анализа
# Фрагмент на ревью
java -Xlog:gc*,safepoint:file=/var/log/app/gc.log:time,uptime,level,tags:filecount=10,filesize=100m -jar app.jar

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу