JV Java  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

equals, hashCode и сравнение объектов

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант; близкие ответы различаются стадией ошибки, порядком действий или границей контракта. После завершения вы увидите общий результат, результаты по 4 тематическим шкалам и объяснения.
Вопрос 1 из 20
Как точнее оценить пользу и цену решения по теме «Хеш-код» в разделе «equals, hashCode и сравнение объектов»?
Вопрос 2 из 20
Какой диагноз для кода по теме «Хеш-код» в разделе «equals, hashCode и сравнение объектов» будет точным?
JavaХеш-код · фрагмент для анализа
class Key { int code;
  public boolean equals(Object o) { return o instanceof Key k && code == k.code; }
  public int hashCode() { return code; }
}
var key = new Key(); key.code = 1;
var map = new java.util.HashMap<Key,String>(); map.put(key,"v");
key.code = 2;
System.out.println(map.get(key));
Вопрос 3 из 20
Каков точный результат выполнения или компиляции фрагмента из раздела «equals, hashCode и сравнение объектов» по теме «Компараторы»?
JavaКомпараторы · фрагмент для анализа
var set = new java.util.TreeSet<String>(java.util.Comparator.comparingInt(String::length));
set.add("ab");
set.add("cd");
System.out.println(set.size());
Вопрос 4 из 20
Какой диагноз для кода по теме «Контракты коллекций» в разделе «equals, hashCode и сравнение объектов» будет точным?
JavaКонтракты коллекций · фрагмент для анализа
record Item(int id, int rank) {}
var byRank = java.util.Comparator.comparingInt(Item::rank);
var set = new java.util.TreeSet<>(byRank);
set.add(new Item(1, 10));
set.add(new Item(2, 10));
System.out.println(set.size());
Вопрос 5 из 20
Что следует изменить в разделе «equals, hashCode и сравнение объектов», чтобы сохранить замысел и соблюсти контракт «Компараторы»?
JavaКомпараторы · фрагмент для анализа
// Фрагмент на ревью
var set = new java.util.TreeSet<String>(java.util.Comparator.comparingInt(String::length));
set.add("ab");
set.add("cd");
System.out.println(set.size());
Вопрос 6 из 20
Что важно учитывать при применении механизма «Компараторы» из раздела «equals, hashCode и сравнение объектов» в рабочем проекте?
Вопрос 7 из 20
Какое утверждение о механизме «Хеш-код» верно в контексте раздела «equals, hashCode и сравнение объектов»?
Вопрос 8 из 20
Какая правка точнее всего устраняет причину проблемы по теме «Равенство» в разделе «equals, hashCode и сравнение объектов»?
JavaРавенство · фрагмент для анализа
// Фрагмент на ревью
record User(int id, String name) {}
var a = new User(1, "Ann");
var b = new User(1, "Bob");
System.out.println(a.equals(b));
Вопрос 9 из 20
Почему после изменения rank поиск в TreeSet может перестать находить тот же объект?
JavaКонтракты коллекций · фрагмент для анализа
final class Item {
    final int id;
    int rank;
    Item(int id, int rank) { this.id = id; this.rank = rank; }
}

var byRank = java.util.Comparator.comparingInt((Item x) -> x.rank);
var set = new java.util.TreeSet<Item>(byRank);
var item = new Item(1, 10);
set.add(item);
item.rank = 50;
System.out.println(set.contains(item));
Вопрос 10 из 20
Что нужно отдельно проверить на границе контракта «Компараторы» в разделе «equals, hashCode и сравнение объектов»?
JavaКомпараторы · фрагмент для анализа
// Минимальный пример
var set = new java.util.TreeSet<String>(java.util.Comparator.comparingInt(String::length));
set.add("ab");
set.add("cd");
System.out.println(set.size());
Вопрос 11 из 20
Какое ограничение механизма «Равенство» нельзя упускать при работе с разделом «equals, hashCode и сравнение объектов»?
Вопрос 12 из 20
Что следует изменить в разделе «equals, hashCode и сравнение объектов», чтобы сохранить замысел и соблюсти контракт «Хеш-код»?
JavaХеш-код · фрагмент для анализа
// Фрагмент на ревью
class Key { int code;
  public boolean equals(Object o) { return o instanceof Key k && code == k.code; }
  public int hashCode() { return code; }
}
var key = new Key(); key.code = 1;
var map = new java.util.HashMap<Key,String>(); map.put(key,"v");
key.code = 2;
System.out.println(map.get(key));
Вопрос 13 из 20
Какое утверждение о механизме «Компараторы» верно в контексте раздела «equals, hashCode и сравнение объектов»?
Вопрос 14 из 20
Какой диагноз для кода по теме «Равенство» в разделе «equals, hashCode и сравнение объектов» будет точным?
JavaРавенство · фрагмент для анализа
record User(int id, String name) {}
var a = new User(1, "Ann");
var b = new User(1, "Bob");
System.out.println(a.equals(b));
Вопрос 15 из 20
Что важно учитывать при применении механизма «Контракты коллекций» из раздела «equals, hashCode и сравнение объектов» в рабочем проекте?
Вопрос 16 из 20
Какое замечание о сопровождении или производительности темы «Равенство» в разделе «equals, hashCode и сравнение объектов» справедливо?
Вопрос 17 из 20
Что следует изменить в разделе «equals, hashCode и сравнение объектов», чтобы сохранить замысел и соблюсти контракт «Контракты коллекций»?
JavaКонтракты коллекций · фрагмент для анализа
// Фрагмент на ревью
record Item(int id, int rank) {}
var byRank = java.util.Comparator.comparingInt(Item::rank);
var set = new java.util.TreeSet<>(byRank);
set.add(new Item(1, 10));
set.add(new Item(2, 10));
System.out.println(set.size());
Вопрос 18 из 20
Какое ограничение механизма «Хеш-код» нельзя упускать при работе с разделом «equals, hashCode и сравнение объектов»?
Вопрос 19 из 20
На какое правило следует опираться при разборе темы «Контракты коллекций» в разделе «equals, hashCode и сравнение объектов»?
Вопрос 20 из 20
Какое правило Java действует для темы «Равенство» в разделе «equals, hashCode и сравнение объектов»?

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

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

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

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