String a = new String("java");
String b = new String("java");
System.out.println(a == b);
System.out.println(a.equals(b));
Выбери вариант, чтобы проверить ответ и прочитать объяснение.
01 / ПРОВЕРЬ ОСНОВЫ
Вопросы на собеседовании Java
Начни с ответа своими словами. Затем открой разбор и проверь, можешь ли объяснить не только правило, но и пример его применения.
01ОбъектыЧем equals отличается от ==?
Для ссылочных типов == проверяет, ссылаются ли переменные на один объект. equals описывает логическое равенство согласно реализации класса. У String equals сравнивает содержимое строк. Для примитивов == сравнивает значения.
Уточнение на интервью
Почему две разные строки с одинаковым содержимым могут быть равны через equals, но не через ==?
02КоллекцииКак связаны equals и hashCode?
Объекты, равные через equals, должны иметь одинаковый hashCode. Обратное неверно: одинаковые хеши не гарантируют равенство. Если переопределяешь equals, переопредели и hashCode, чтобы объект корректно работал в HashMap и HashSet.
Уточнение на интервью
Почему опасно менять поля ключа HashMap, участвующие в equals и hashCode, после добавления?
03Структуры данныхКогда выбрать ArrayList, а когда HashSet?
ArrayList хранит последовательность с порядком и повторениями, позволяет обращаться по индексу. HashSet предназначен для уникальных элементов и не гарантирует порядок. Если нужны уникальность и порядок вставки, рассмотри LinkedHashSet.
Уточнение на интервью
Какая структура подходит для удаления повторов с сохранением порядка первого появления?
04РесурсыДля чего нужен try-with-resources?
Он закрывает ресурсы, реализующие AutoCloseable, при выходе из блока, включая выход из-за исключения. Это удобно для файлов и соединений. Если ошибка возникла и в блоке, и при закрытии, исключение закрытия может стать подавленным.
Уточнение на интервью
Почему ручное close после чтения недостаточно, если при чтении может возникнуть исключение?
02 / ОТ ОБЪЯСНЕНИЯ К РЕШЕНИЮ
Убери повторы. Сохрани порядок.
Верни список уникальных целых чисел в порядке первого появления. Объясни выбор коллекции и обработай пустой список.
ПРАКТИЧЕСКАЯ ЗАДАЧАJAVA
unique(List.of(3, 1, 3, 2, 1));
// [3, 1, 2]
Проверь основной сценарий и крайние случаи. Объясни ход решения и ограничения выбранного подхода.
Посмотреть решение и разбор
static List<Integer> unique(List<Integer> values) {
return new ArrayList<>(new LinkedHashSet<>(values));
}
LinkedHashSet сохраняет порядок вставки и убирает повторы. Нужны импорты java.util.List, ArrayList и LinkedHashSet. В среднем время O(n), дополнительная память O(n).
03 / СЛЕДУЮЩИЙ ШАГ ПОНЯТЕН
Собери план подготовки
Отметь пройденные темы. Это пример маршрута: глубину и темп выбирай под свою вакансию и уровень.
Повторено 0 из 5 блоков
ОТ ПРАКТИКИ К ПЛАНУ
Что будет после тренировки?
После тренировки появятся итоговая оценка и общий отзыв. В Pro — подробный разбор ответов, материалы для повторения и все тренировки по System Design.
ПРИМЕР РЕКОМЕНДАЦИИСледующий шаг в подготовке
Повтори equals и hashCode. Создай два логически равных объекта и проверь их поведение в HashSet.
ПЕРЕД ТРЕНИРОВКОЙ
Частые вопросы
Подойдёт ли подготовка для Junior?
Да. Выбери Junior и начни с основ направления. Глубину вопросов и список тем сверяй с требованиями вакансии.
Это курс с нуля?
Это подготовка к техническому интервью и практика уже изученных навыков. Для старта пригодятся базовые знания выбранного направления.
Что доступно без аккаунта?
Все вопросы, разборы, задача и план на этой странице. Для персональной тренировки и сохранения результатов понадобится аккаунт. Условия — на странице тарифов.