es
Feedback
Java Interview Tasks

Java Interview Tasks

Ir al canal en Telegram

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

Mostrar más
4 899
Suscriptores
+624 horas
+757 días
+19030 días
Archivo de publicaciones
Что вернет метод `thenRun()`, если предыдущий этап вернул строку "Success"?
Anonymous voting

🔍 Ответ на задачу про instanceof: А если там null? 🧐 Согласно спецификации Java, оператор instanceof всегда возвращает false, если левый операнд равен null. При этом никакой ошибки (NPE) не возникает. Вывод: Оба сравнения вернут false. null не является экземпляром ни одного класса, даже Object. ⚡️ Не перепутайте: Вам не нужно проверять s != null перед использованием instanceof. Сам оператор уже делает эту проверку за вас. #java #instanceof #null #basics #интервью #java_interview_tasks

Оператор instanceof кажется простым, но его поведение с null иногда застает врасплох. Что выведет код?
String s = null;
System.out.println(s instanceof String);
System.out.println(s instanceof Object);

Что выведет код?
Anonymous voting

🔍 Ответ на задачу про SQL: LEFT JOIN + WHERE — скрытый баг 🐛 LEFT JOIN гарантирует, что все строки из левой таблицы (customers) попадут в результат, даже если в правой таблице (products) нет совпадений — в этом случае столбцы правой таблицы заполняются NULL. Однако условие WHERE p.status = 'SHIPPED' отфильтровывает все строки, где p.status IS NULL. Это означает, что клиенты без заказов будут исключены из результата, и LEFT JOIN фактически превратится в INNER JOIN. Вывод: WHERE по правой таблице превращает LEFT JOIN в INNER JOIN. Чтобы сохранить поведение LEFT JOIN, условие фильтрации нужно перенести в ON:
SELECT   c.NAME,
         p.product_id
FROM     customers c
         LEFT JOIN products p
              ON c.id = p.customer_id
              AND p.status = 'SHIPPED';
#sql #leftjoin #where #bug #database #интервью #java_interview_tasks

Есть ли тут баг?
Anonymous voting

Есть ли тут баг?
Есть ли тут баг?

🔍 Ответ на задачу про Double.NaN: Неуловимое "Не число" 👻 - Согласно стандарту IEEE 754, `NaN` не равен самому себе. Поэтому `x == y` всегда `false`. - Однако `Double.equals()` реализован так, что он считает два `NaN` равными. Это сделано для того, чтобы `NaN` можно было использовать в коллекциях (например, как ключ в `HashMap`). Вывод: Сравнение примитивов даст `false`, а объектов — `true`. ⚡️ Не перепутайте: Для проверки на `NaN` у примитивов используйте `Double.isNaN(x)`. #java #double #nan #floatingpoint #интервью #java_interview_tasks

Что выведет этот код?
Anonymous voting

🔍 Ответ на задачу про try-with-resources: Куда делось исключение? 🛡 В try-with-resources основным считается исключение, возникшее в блоке try. Если при автоматическом закрытии ресурсов тоже возникнет исключение, оно не затрет основное, а будет добавлено в список "подавленных" (доступно через e.getSuppressed()). Вывод: Метод getMessage() вернет только основное исключение — "Try Error". ⚡️ Не перепутайте: В старом стиле (через finally) исключение из finally могло "проглотить" исключение из try. Try-with-resources решает эту проблему. #java #exceptions #trywithresources #suppressed #clean_code #интервью #java_interview_tasks

Друзья, собрали с коллегами для вас новую папку с каналами В Подборке вы найдёте (кратко): AI-блок: новости, нейросети, ИИ-ин
Друзья, собрали с коллегами для вас новую папку с каналами В Подборке вы найдёте (кратко): AI-блок: новости, нейросети, ИИ-инструменты и кейсы внедрения, стартапы, датасеты Dev-блок: Java, Python, JS (Frontend/Backend), Mobile, QA, промышленная автоматизация (IIoT) Отдельно: Cybersecurity, SciPop, IT-вакансии, биржа фриланса, бизнес-новости, Agile/PMP-менеджмент Бонус: IT-мемы и юмор Посмотреть и подписаться можно здесь ⬇️ https://t.me/addlist/3rXhpT3aSR02YzA0 📩 Записаться в папку

Механизм try-with-resources (Java 7+) сильно упростил жизнь, но у него есть нюанс с "подавленными" (suppressed) исключениями. Что напечатает программа, если и close(), и тело try кидают исключения?
class Door implements AutoCloseable {
    public void close() { throw new RuntimeException("Close Error"); }
}
try (Door d = new Door()) {
    throw new RuntimeException("Try Error");
} catch (Exception e) {
    System.out.println(e.getMessage());
}

Что напечатает программа, если и `close()`, и тело `try` кидают исключения?
Anonymous voting

Десятки обновлений нейросетей и новых AI-инструментов выходят еженедельно. Вопрос только в том — узнаешь ли ты об этом первым
Десятки обновлений нейросетей и новых AI-инструментов выходят еженедельно. Вопрос только в том — узнаешь ли ты об этом первым? Хочешь быть в их числе? Мы собрали ПОДБОРКУ со всеми свежими ИИ-инструментами, фишками и апдейтами. Никакой воды — только то, что реально упрощает работу и приносит результат. 👉 Делимся знаниями и аудиторией — растём вместе ⚡️   Отписаться можно в любой момент. Остаться — тоже ✔️ Добавляй ПАПКУ в свой актив и делись с друзьями! 📌

🔍 Ответ на задачу про порядок инициализации: Кто первый — блок или конструктор? 🏗 Правило: 1. Сначала статические блоки родителя, потом ребенка (при первой загрузке класса). 2. Затем нестатические блоки родителя и его конструктор. 3. Только после этого нестатические блоки ребенка и его конструктор. Вывод: Сначала статика: 1, 4. Затем родитель: 2, 3. Затем ребенок: 5, 6. Итого: 142356. ⚡️ Не перепутайте: Статика выполняется только один раз при загрузке класса, а обычные блоки — при каждом создании объекта перед конструктором. #java #initialization #static #constructor #oop #интервью #java_interview_tasks

Понимание порядка инициализации полей и блоков — база для предсказания поведения сложных объектов. В каком порядке выведутся цифры?
class Parent {
    static { System.out.print("1"); }
    { System.out.print("2"); }
    Parent() { System.out.print("3"); }
}
class Child extends Parent {
    static { System.out.print("4"); }
    { System.out.print("5"); }
    Child() { System.out.print("6"); }
}
public class Main {
    public static void main(String[] args) {
        new Child();
    }
}

В каком порядке выведутся цифры?
Anonymous voting

🔍 Ответ на задачу про CompletableFuture: join() vs get() 🥊 Объяснение: Оба метода ждут завершения задачи, но делают это по-разному. get() объявлен в интерфейсе Future и выбрасывает InterruptedException и ExecutionException (оба checked). Это заставляет вас писать try-catch. join() — это метод CompletableFuture, он выбрасывает CompletionException (runtime), что гораздо удобнее при использовании в Stream API и лямбдах. Вывод: Логика ожидания у них одинаковая, разница только в обработке ошибок. #java #completablefuture #concurrency #exception #java8 #backend #интервью #java_interview_tasks

В чем главное отличие CompletableFuture `join()` от `get()`?
Anonymous voting

🔍 Ответ на задачу про String Pool: Магия intern() или где живет ваша строка? 🧵 Сравнение строк в Java через == — это классика интервью. Но что произойдет, если мы начнем вручную управлять пулом строк? Объяснение: - s1 — это строковый литерал, он сразу попадает в String Pool. - s2 создается через new String(), поэтому в куче (heap) создается новый объект, отличный от того, что в пуле. Сравнение s1 == s2 дает false. - Метод intern() ищет строку в пуле. Если она там есть, он возвращает ссылку на объект из пула. Так как "Java" уже там была (от s1), s3 получит ту же самую ссылку. Вывод: s1 == s3 вернет true, так как обе переменные теперь ссылаются на один и тот же объект в String Pool. ⚡️ Не перепутайте: - == сравнивает ссылки. - equals() сравнивает содержимое. - intern() — полезный инструмент для экономии памяти, если у вас много повторяющихся строк, созданных динамически. #java #string #stringpool #intern #jvm #interview #java_interview_tasks