ru
Feedback
Java Interview Tasks

Java Interview Tasks

Открыть в Telegram

Реальные вопросы и задачи с собеседований. Оригинальный авторский контент. Актуальный материал. Уровень вопросов от junior до supersenior. Автор канала - @alexzelentsov По рекламе: @alexzelentsov

Больше
4 899
Подписчики
+624 часа
+757 дней
+19030 дней
Архив постов
Почему статические методы ведут себя не так, как обычные? Что выведет код?
Anonymous voting

🔍 Ответ на задачу про Наследование: Приватные методы не переопределяются 🛡 Приватные методы в Java не участвуют в полиморфизме. Они принадлежат только тому классу, в котором объявлены, и не могут быть переопределены (override). Когда метод test() вызывается у объекта Child, он ищется в Parent. Внутри test() вызывается print(), который в Parent помечен как private. Java связывает этот вызов статически именно с методом в Parent. Вывод: Напечатается "Parent". Метод print() в Child — это просто новый метод, который никак не связан с приватным методом родителя. ⚡️ Не перепутайте: Если вы хотите, чтобы метод переопределялся, он должен быть как минимум protected. #java #oop #inheritance #polymorphism #basics #интервью #java_interview_tasks

Что будет, если вызвать приватный метод из родительского класса? Что напечатает new Child().test()?
class Parent {
    public void test() { print(); }
    private void print() { System.out.print("Parent"); }
}
class Child extends Parent {
    public void print() { System.out.print("Child"); }
}

Что будет, если вызвать приватный метод из родительского класса? Что напечатает `new Child().test()`?
Anonymous voting

🔍 Ответ на задачу про LinkedHashMap: Порядок имеет значение 🔄 У LinkedHashMap есть специальный конструктор, где третий аргумент accessOrder включает режим "порядка доступа". Если он равен true, то при каждом get() или put() элемент перемещается в конец списка. Это идеальная основа для реализации LRU-кеша (Least Recently Used). Вывод: Так как мы обратились к ключу 2, он переместился в конец. Порядок станет: 1, 3, 2. ⚡️ Не перепутайте: По умолчанию LinkedHashMap сохраняет порядок вставки (accessOrder = false). #java #collections #linkedhashmap #lru #cache #интервью #java_interview_tasks

Как заставить мапу помнить, к каким элементам обращались чаще всего? Что выведет этот код?
Map<Integer, String> map = new LinkedHashMap<>(16, 0.75f, true);
map.put(1, "A");
map.put(2, "B");
map.put(3, "C");
map.get(2); // Обращаемся к элементу 2
System.out.println(map.keySet());

Как заставить мапу помнить, к каким элементам обращались чаще всего? Что выведет этот код?
Anonymous voting

🔍 Ответ на задачу про Iterator.remove(): Чистим коллекцию правильно 🧹 - Вариант A (for-each) использует итератор неявно. Если мы вызываем list.remove() напрямую, итератор об этом не знает и при следующей проверке modCount выбросит ConcurrentModificationException. - Вариант B использует iterator.remove(). Этот метод специально спроектирован для безопасного удаления текущего элемента во время итерации. Вывод: Верный вариант — B. (Хотя есть исключение: в ArrayList удаление предпоследнего элемента через list.remove() в for-each может не вызвать ошибку из-за бага/особенности проверки hasNext(), но полагаться на это нельзя). ⚡️ Не перепутайте: В Java 8+ самый простой и безопасный способ: list.removeIf(s -> s.equals("A")). #java #collections #iterator #bug #clean_code #интервью #java_interview_tasks

❗️❗️❗️Дарю доступ только на 3 дня ⠀ Собрали самые полезные каналы в сфере IT и AI ⠀ ▪️⠀Корпоративный ИИ Рынок корпоративного ИИ глазами системного интегратора. Новости, кейсы и аналитика через фильтр реального опыта. ▪️ИИ что дальше? ▪️Кибермаркетинг| AI+ опыт = деньги ▪️Стратегия, AI и организационный дизайн ⠀ И другие каналы в одной ПАПКЕ. ⠀ + канал с реально полезными пронтами, которые создают крутой оффер в любой ИИ. А еще ⠀ - нормально сегментируют ЦА, а не пишут «женщины 30+» - помогают упаковать блог/продукт ⠀ Все в одной подборке. Жмите, чтобы добавить 👉 ДОБАВИТЬ ⠀ ❗️Через 3 дня удалю пост. Успевайте. ⠀ Добавить канал в подборку 👉 ТЕКСТ В БЛОГЕ

Можно ли удалять элементы из списка во время обхода? Какой код НЕ выбросит ConcurrentModificationException?
List<String> list = new ArrayList<>(Arrays.asList("A", "B", "C"));
// Вариант A
for (String s : list) {
        if (s.equals("A")) list.remove(s);
}
// Вариант B
Iterator<String> it = list.iterator();
while (it.hasNext()) {
        if (it.next().equals("A")) it.remove();
}

Можно ли удалять элементы из списка во время обхода? Какой код НЕ выбросит `ConcurrentModificationException`?
Anonymous voting

🔍 Ответ на задачу про Enum.values(): Скрытые аллокации 📦 Спецификация Java требует, чтобы массив, возвращаемый values(), был изменяемым (вы можете заменить в нем элементы, хотя это и плохая практика). Чтобы пользователи не могли испортить внутреннее состояние перечисления, компилятор генерирует код, который создает копию массива при каждом вызове values(). Вывод: Каждый вызов values() — это новая аллокация памяти. В высокопроизводительном коде лучше кешировать этот массив: private static final Color[] VALUES = Color.values(). ⚡️ Не перепутайте: Если вам нужно просто получить количество элементов, используйте кешированное значение или Java 21 Enum.entries. #java #enum #performance #jvm #memory #интервью #java_interview_tasks

Почему частый вызов MyEnum.values() в цикле — это плохая идея? Что происходит "под капотом" при каждом вызове Color.values()?
enum Color { RED, GREEN, BLUE }

Почему частый вызов `MyEnum.values()` в цикле — это плохая идея? Что происходит "под капотом" при каждом вызове `Color.values()`?
Anonymous voting

🔍 Ответ на задачу про IdentityHashMap: Когда ссылки важнее значений 🔗 - HashMap использует equals() и hashCode() для сравнения ключей. Для "Java" и new String("Java") equals вернет true, поэтому в HashMap была бы 1 запись. - IdentityHashMap использует оператор ==. Так как s1 и s2 — это разные объекты в памяти, мапа считает их разными ключами. Вывод: Размер мапы будет 2. ⚡️ Не перепутайте: IdentityHashMap — редкий зверь. Она полезна, например, при сериализации графа объектов, чтобы не зациклиться, если два узла имеют одинаковое содержимое, но являются разными объектами. #java #collections #hashmap #identityhashmap #internals #интервью #java_interview_tasks

УСПЕВАЕШЬ СЛЕДИТЬ ЗА НОВИНКАМИ ?! Технологии не ждут ... * Пора сделать АПГРЕЙД своего информационного поля ♻️ Это ПОДБОРКА в
УСПЕВАЕШЬ СЛЕДИТЬ ЗА НОВИНКАМИ ?! Технологии не ждут ... * Пора сделать АПГРЕЙД своего информационного поля ♻️ Это ПОДБОРКА ведущих Telegram-каналов — тех самых людей, которые не просто читают новости, а сами их создают. 📂 Добавляй ПАПКУ — и получи полный АПГРЕЙД своей ленты: * Сделай свою подписку умнее, пока другие читают вчерашние новости ⚡️ Отписаться можно в любой момент. Остаться — тоже ✔️ 📩 Запись в папку

Чем IdentityHashMap отличается от обычной HashMap? Сколько элементов будет в мапе?
Map<String, String> map = new IdentityHashMap<>();
String s1 = "Java";
String s2 = new String("Java");
map.put(s1, "first");
map.put(s2, "second");
System.out.println(map.size());

Чем `IdentityHashMap` отличается от обычной `HashMap`? Сколько элементов будет в мапе?
Anonymous voting

📂 Подборка каналов по AI, IT & HR Tech Каналы для тех, кто работает в IT и хочет держать руку на пульсе без мониторинга сотн
📂 Подборка каналов по AI, IT & HR Tech Каналы для тех, кто работает в IT и хочет держать руку на пульсе без мониторинга сотни источников ✔️ Что внутри:
AI-блок: новости, нейросети, ИИ-инструменты и кейсы внедрения, стартапы, датасеты Dev-блок: Java, Python, JS (Frontend/Backend), Mobile, QA, промышленная автоматизация (IIoT) Отдельно: Cybersecurity, SciPop, IT-вакансии, биржа фриланса, бизнес-новости, Agile/PMP-менеджмент Бонус: IT-мемы и юмор
Посмотреть и подписаться можно здесь ⬇️ https://t.me/addlist/CXLWDMd4-_Y1ZGVk                                 📩 Записаться в папку

Почему ты получаешь отказ после "норм собеса"? Дело не в знаниях - ты просто не знаешь, что реально проверяют на собеседовани
Почему ты получаешь отказ после "норм собеса"? Дело не в знаниях - ты просто не знаешь, что реально проверяют на собеседованиях Отсюда:  — непонимание, какие навыки надо качать, чтобы выйти на следующий грейд  — ощущение стагнации и отсутствие роста в скиллах  — долгое время на одной и той же зп Решение — знать, что от тебя ждёт интервьюер, и умение правильно донести свою мысль Для этого ребята из ШОРТКАТ (менторской программы для разработчиков) собрали в один файл ОТВЕТЫ НА 50 СЛОЖНЫХ ВОПРОСОВ с Java-собеседований 🔥 Они проанализировали более 100 мок-интервью и собрали внутри реальные вопросы + ответы сильного кандидата Забрать можно бесплатно (!) в боте — @shortcut_sh_bot Переходите по ссылке выше и забирайте файл, чтобы быстрее выйти на новый уровень ☝️ Реклама. О рекламодателе.