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

Загрузка классов и рефлексия

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

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант; близкие ответы различаются стадией ошибки, порядком действий или границей контракта. После завершения вы увидите общий результат, результаты по 6 тематическим шкалам и объяснения.
Вопрос 1 из 30
Какой контракт языка или библиотеки точнее всего описывает тему «Загрузчики классов» в разделе «Загрузка классов и рефлексия»?
Вопрос 2 из 30
Какой граничный случай особенно важен для темы «Инициализация» в разделе «Загрузка классов и рефлексия»?
JavaИнициализация · фрагмент для анализа
// Минимальный пример
class Config {
    static final int A = 10;
    static int B = 1;
}
System.out.println(Config.A + ":" + Config.B);
Вопрос 3 из 30
Что важно учитывать при применении механизма «Производительность и эксплуатация» из раздела «Загрузка классов и рефлексия» в рабочем проекте?
Вопрос 4 из 30
Какой контракт языка или библиотеки точнее всего описывает тему «Производительность и эксплуатация» в разделе «Загрузка классов и рефлексия»?
Вопрос 5 из 30
Как поведёт себя фрагмент по теме «Риски динамики» при разборе раздела «Загрузка классов и рефлексия»?
JavaРиски динамики · фрагмент для анализа
String type = request.getParameter("type");
Object handler = Class.forName(type).getConstructor().newInstance();
return ((Handler) handler).handle(request);
Вопрос 6 из 30
Какое правило Java действует для темы «Инициализация» в разделе «Загрузка классов и рефлексия»?
Вопрос 7 из 30
Как лучше исправить или прояснить поведение темы «Тестирование и диагностика» в разделе «Загрузка классов и рефлексия»?
JavaТестирование и диагностика · фрагмент для анализа
// Фрагмент на ревью
try {
    method.invoke(target);
} catch (ReflectiveOperationException e) {
    log.error("invoke failed", e);
}
Вопрос 8 из 30
Что произойдёт с кодом по теме «Тестирование и диагностика» в разделе «Загрузка классов и рефлексия»?
JavaТестирование и диагностика · фрагмент для анализа
try {
    method.invoke(target);
} catch (ReflectiveOperationException e) {
    log.error("invoke failed", e);
}
Вопрос 9 из 30
Какое утверждение о механизме «API рефлексии» верно в контексте раздела «Загрузка классов и рефлексия»?
Вопрос 10 из 30
Какой инженерный компромисс характерен для темы «Риски динамики» в разделе «Загрузка классов и рефлексия»?
Вопрос 11 из 30
Какой граничный случай особенно важен для темы «Загрузчики классов» в разделе «Загрузка классов и рефлексия»?
JavaЗагрузчики классов · фрагмент для анализа
// Минимальный пример
Class<?> pluginType = pluginLoader.loadClass("app.Model");
Object value = pluginType.getConstructor().newInstance();
app.Model model = (app.Model) value;
Вопрос 12 из 30
Каков точный результат выполнения или компиляции фрагмента из раздела «Загрузка классов и рефлексия» по теме «Загрузчики классов»?
JavaЗагрузчики классов · фрагмент для анализа
Class<?> pluginType = pluginLoader.loadClass("app.Model");
Object value = pluginType.getConstructor().newInstance();
app.Model model = (app.Model) value;
Вопрос 13 из 30
Как точнее оценить пользу и цену решения по теме «Инициализация» в разделе «Загрузка классов и рефлексия»?
Вопрос 14 из 30
Какое изменение сделает код по теме «API рефлексии» в разделе «Загрузка классов и рефлексия» надёжнее?
JavaAPI рефлексии · фрагмент для анализа
// Фрагмент на ревью
class Calc { public int add(int a, int b) { return a + b; } }
var m = Calc.class.getMethod("add", Integer.class, Integer.class);
System.out.println(m.invoke(new Calc(), 1, 2));
Вопрос 15 из 30
Какое изменение сделает код по теме «Риски динамики» в разделе «Загрузка классов и рефлексия» надёжнее?
JavaРиски динамики · фрагмент для анализа
// Фрагмент на ревью
String type = request.getParameter("type");
Object handler = Class.forName(type).getConstructor().newInstance();
return ((Handler) handler).handle(request);
Вопрос 16 из 30
Какое ограничение механизма «API рефлексии» нельзя упускать при работе с разделом «Загрузка классов и рефлексия»?
JavaAPI рефлексии · фрагмент для анализа
// Минимальный пример
class Secret { private String token = "abc"; }
var f = Secret.class.getDeclaredField("token");
f.setAccessible(true);
System.out.println(f.get(new Secret()));
Вопрос 17 из 30
Какой риск для выгрузки плагина создаёт такой статический кэш?
JavaПроизводительность и эксплуатация · фрагмент для анализа
class MetadataCache {
    static final java.util.Map<Class<?>, Object> META =
        new java.util.concurrent.ConcurrentHashMap<>();
    static Object inspect(Class<?> type) { return type.getDeclaredMethods(); }
    static void remember(Class<?> pluginClass) {
        META.computeIfAbsent(pluginClass, MetadataCache::inspect);
    }
}
Вопрос 18 из 30
Какое правило Java действует для темы «Тестирование и диагностика» в разделе «Загрузка классов и рефлексия»?
Вопрос 19 из 30
В каком дополнительном сценарии вывод о теме «Производительность и эксплуатация» в разделе «Загрузка классов и рефлексия» может оказаться неверным?
JavaПроизводительность и эксплуатация · фрагмент для анализа
// Минимальный пример
class Calc { public int add(int a, int b) { return a + b; } }
var m = Calc.class.getMethod("add", int.class, int.class);
for (int i = 0; i < 1000; i++) {
    System.out.println(m.invoke(new Calc(), i, 1));
}
Вопрос 20 из 30
Что важно учитывать при применении механизма «Загрузчики классов» из раздела «Загрузка классов и рефлексия» в рабочем проекте?
Вопрос 21 из 30
Какое изменение сделает код по теме «Производительность и эксплуатация» в разделе «Загрузка классов и рефлексия» надёжнее?
JavaПроизводительность и эксплуатация · фрагмент для анализа
// Фрагмент на ревью
class MetadataCache {
    static final java.util.Map<Class<?>, Object> META =
        new java.util.concurrent.ConcurrentHashMap<>();
    static Object inspect(Class<?> type) { return type.getDeclaredMethods(); }
    static void remember(Class<?> pluginClass) {
        META.computeIfAbsent(pluginClass, MetadataCache::inspect);
    }
}
Вопрос 22 из 30
Какое замечание о сопровождении или производительности темы «Тестирование и диагностика» в разделе «Загрузка классов и рефлексия» справедливо?
Вопрос 23 из 30
Какое утверждение о механизме «Риски динамики» верно в контексте раздела «Загрузка классов и рефлексия»?
Вопрос 24 из 30
Какой граничный случай особенно важен для темы «Тестирование и диагностика» в разделе «Загрузка классов и рефлексия»?
JavaТестирование и диагностика · фрагмент для анализа
// ...
    method.invoke(target);
} catch (ReflectiveOperationException e) {
    log.error("invoke failed", e);
}
Вопрос 25 из 30
Как поведёт себя фрагмент по теме «API рефлексии» при разборе раздела «Загрузка классов и рефлексия»?
JavaAPI рефлексии · фрагмент для анализа
class Calc { public int add(int a, int b) { return a + b; } }
var m = Calc.class.getMethod("add", Integer.class, Integer.class);
System.out.println(m.invoke(new Calc(), 1, 2));
Вопрос 26 из 30
Какое ограничение механизма «Риски динамики» нельзя упускать при работе с разделом «Загрузка классов и рефлексия»?
JavaРиски динамики · фрагмент для анализа
// Минимальный пример
String type = request.getParameter("type");
Object handler = Class.forName(type).getConstructor().newInstance();
return ((Handler) handler).handle(request);
Вопрос 27 из 30
Как лучше исправить или прояснить поведение темы «Загрузчики классов» в разделе «Загрузка классов и рефлексия»?
JavaЗагрузчики классов · фрагмент для анализа
// Фрагмент на ревью
Class<?> pluginType = pluginLoader.loadClass("app.Model");
Object value = pluginType.getConstructor().newInstance();
app.Model model = (app.Model) value;
Вопрос 28 из 30
Как точнее оценить пользу и цену решения по теме «API рефлексии» в разделе «Загрузка классов и рефлексия»?
Вопрос 29 из 30
Как поведёт себя фрагмент по теме «Инициализация» при разборе раздела «Загрузка классов и рефлексия»?
JavaИнициализация · фрагмент для анализа
class Config {
    static int A = B + 1;
    static int B = 1;
}
System.out.println(Config.A + ":" + Config.B);
Вопрос 30 из 30
Что следует изменить в разделе «Загрузка классов и рефлексия», чтобы сохранить замысел и соблюсти контракт «Инициализация»?
JavaИнициализация · фрагмент для анализа
// Фрагмент на ревью
class Config {
    static int A = B + 1;
    static int B = 1;
}
System.out.println(Config.A + ":" + Config.B);

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

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

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

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