JV Java  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Обобщения Java

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

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом вопросе верен только один вариант; близкие ответы различаются стадией ошибки, порядком действий или границей контракта. После завершения вы увидите общий результат, результаты по 5 тематическим шкалам и объяснения.
Вопрос 1 из 25
Каков точный результат выполнения или компиляции фрагмента из раздела «Обобщения Java» по теме «Подстановочные типы»?
JavaПодстановочные типы · фрагмент для анализа
static double sum(java.util.List<? extends Number> xs) {
    double total = 0;
    for (Number x : xs) total += x.doubleValue();
    return total;
}
System.out.println(sum(java.util.List.of(1, 2, 3)));
Вопрос 2 из 25
Как точнее оценить пользу и цену решения по теме «Подстановочные типы» в разделе «Обобщения Java»?
Вопрос 3 из 25
Что произойдёт с кодом по теме «Стирание типов» в разделе «Обобщения Java»?
JavaСтирание типов · фрагмент для анализа
static void process(java.util.List<String> xs) {}
static void process(java.util.List<Integer> xs) {}
Вопрос 4 из 25
Какое правило Java действует для темы «Стирание типов» в разделе «Обобщения Java»?
Вопрос 5 из 25
Какое ограничение механизма «Ограничения» нельзя упускать при работе с разделом «Обобщения Java»?
JavaОграничения · фрагмент для анализа
// Минимальный пример
static <T extends Comparable<? super T>> T max(T a, T b) {
    return a.compareTo(b) >= 0 ? a : b;
}
System.out.println(max(4, 9));
Вопрос 6 из 25
Что нужно отдельно проверить на границе контракта «Параметры типов» в разделе «Обобщения Java»?
Вопрос 7 из 25
Как точнее оценить пользу и цену решения по теме «Стирание типов» в разделе «Обобщения Java»?
Вопрос 8 из 25
Какое замечание о сопровождении или производительности темы «Тестирование и диагностика» в разделе «Обобщения Java» справедливо?
Вопрос 9 из 25
Какое правило Java действует для темы «Ограничения» в разделе «Обобщения Java»?
Вопрос 10 из 25
Что следует изменить в разделе «Обобщения Java», чтобы сохранить замысел и соблюсти контракт «Параметры типов»?
JavaПараметры типов · фрагмент для анализа
// Фрагмент на ревью
class Box<T> {
    private T value;
    void set(T value) { this.value = value; }
    T get() { return value; }
}
var box = new Box<String>();
box.set("ok");
System.out.println(box.get().length());
Вопрос 11 из 25
Как поведёт себя фрагмент по теме «Тестирование и диагностика» при разборе раздела «Обобщения Java»?
JavaТестирование и диагностика · фрагмент для анализа
java.util.List raw = new java.util.ArrayList<String>();
raw.add(42);
java.util.List<String> typed = raw;
System.out.println(typed.get(0).length());
Вопрос 12 из 25
Какой контракт языка или библиотеки точнее всего описывает тему «Подстановочные типы» в разделе «Обобщения Java»?
Вопрос 13 из 25
Какое ограничение механизма «Тестирование и диагностика» нельзя упускать при работе с разделом «Обобщения Java»?
JavaТестирование и диагностика · фрагмент для анализа
// Минимальный пример
java.util.List raw = new java.util.ArrayList<String>();
raw.add(42);
java.util.List<String> typed = raw;
System.out.println(typed.get(0).length());
Вопрос 14 из 25
Какой контракт языка или библиотеки точнее всего описывает тему «Параметры типов» в разделе «Обобщения Java»?
Вопрос 15 из 25
Какое изменение сделает код по теме «Стирание типов» в разделе «Обобщения Java» надёжнее?
JavaСтирание типов · фрагмент для анализа
// Фрагмент на ревью
static void process(java.util.List<String> xs) {}
static void process(java.util.List<Integer> xs) {}
Вопрос 16 из 25
Какая правка точнее всего устраняет причину проблемы по теме «Тестирование и диагностика» в разделе «Обобщения Java»?
JavaТестирование и диагностика · фрагмент для анализа
// Фрагмент на ревью
java.util.List raw = new java.util.ArrayList<String>();
raw.add(42);
java.util.List<String> typed = raw;
System.out.println(typed.get(0).length());
Вопрос 17 из 25
Какое замечание о сопровождении или производительности темы «Ограничения» в разделе «Обобщения Java» справедливо?
Вопрос 18 из 25
Какое замечание о сопровождении или производительности темы «Параметры типов» в разделе «Обобщения Java» справедливо?
Вопрос 19 из 25
Каков точный результат выполнения или компиляции фрагмента из раздела «Обобщения Java» по теме «Ограничения»?
JavaОграничения · фрагмент для анализа
static <T extends Comparable<? super T>> T max(T a, T b) {
    return a.compareTo(b) >= 0 ? a : b;
}
System.out.println(max(4, 9));
Вопрос 20 из 25
Что следует изменить в разделе «Обобщения Java», чтобы сохранить замысел и соблюсти контракт «Подстановочные типы»?
JavaПодстановочные типы · фрагмент для анализа
// Фрагмент на ревью
static double sum(java.util.List<? extends Number> xs) {
    double total = 0;
    for (Number x : xs) total += x.doubleValue();
    return total;
}
System.out.println(sum(java.util.List.of(1, 2, 3)));
Вопрос 21 из 25
Что следует изменить в разделе «Обобщения Java», чтобы сохранить замысел и соблюсти контракт «Ограничения»?
JavaОграничения · фрагмент для анализа
// Фрагмент на ревью
static <T extends Comparable<? super T>> T max(T a, T b) {
    return a.compareTo(b) >= 0 ? a : b;
}
System.out.println(max(4, 9));
Вопрос 22 из 25
Какое ограничение механизма «Подстановочные типы» нельзя упускать при работе с разделом «Обобщения Java»?
JavaПодстановочные типы · фрагмент для анализа
// ...
    return total;
}
System.out.println(sum(java.util.List.of(1, 2, 3)));
Вопрос 23 из 25
Какой контракт языка или библиотеки точнее всего описывает тему «Тестирование и диагностика» в разделе «Обобщения Java»?
Вопрос 24 из 25
Каков точный результат выполнения или компиляции фрагмента из раздела «Обобщения Java» по теме «Параметры типов»?
JavaПараметры типов · фрагмент для анализа
class Box<T> {
    private T value;
    void set(T value) { this.value = value; }
    T get() { return value; }
}
var box = new Box<String>();
box.set("ok");
System.out.println(box.get().length());
Вопрос 25 из 25
Что нужно отдельно проверить на границе контракта «Стирание типов» в разделе «Обобщения Java»?
JavaСтирание типов · фрагмент для анализа
// Минимальный пример
class Holder<T> {
    T create() {
        return new T();
    }
}

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

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

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

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