Перейти к содержимому
Технологии IT обновлён 27.02.2024

Java Interview Tasks

Канал "Java Interview Tasks" предлагает реальные вопросы и задачи, которые могут встретиться на собеседованиях для Java-разработчиков. Здесь вы найдете полезные материалы, связанные с Java, включая вопросы о ядре Java, коллекциях, Java 8, Servlets, JSP, JSTL, SQL, JDBC, UML, XML, HTML, CSS и других темах. Канал также предоставляет информацию о Telegram-боте, связанном с Java-разработкой, и активность статистики канала. Присоединяйтесь к каналу "Java Interview Tasks" и подготовьтесь к собеседованиям с уверенностью!

Публикации канала

🔍 Ответ на задачу про System.exit(): exit или finally? 🥊 Блок finally гарантированно выполняется почти всегда. Но System.exit() - это другое). Он мгновенно останавливает работу всей виртуальной машины (JVM). В этом случае выполнение кода прерывается немедленно, и никакие finally блоки не запускаются. Вывод: Программа выведет только "Try " и завершится. Единственный способ выполнить код при выходе — использовать Runtime.getRuntime().addShutdownHook(). ⚡️ Не перепутайте: Во всех остальных случаях (return, exception, break) finally обязательно отработает. #java #jvm #finally #systemexit #basics #интервью #java_interview_tasks

Открыть в Telegram

🪩 Последние IT & AI новости в одной ленте 🔎 Мониторить каналы про нейросети поштучно долго — свежие инструменты, обновления и материалы удобнее держать в одной подборке. Внутри: – новые сервисы и рабочие фишки; – обзоры инструментов AI и IT; – карьера и HR Tech: как найти работу по специальности. 🔗 Сохранить [ подборку ]     📩 Записаться в папку

Открыть в Telegram

Что выведет этот код? try { System.out.print("Try "); System.exit(0); } finally { System.out.print("Finally"); }

Открыть в Telegram

Что выведет этот код? Anonymous Quiz 36% - Try Finally 55% - Try 8% - Finally 1% - Ошибка компиляции.

Открыть в Telegram

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

Открыть в Telegram

🔍 Ответ на задачу про StringJoiner: StringJoiner (Java 8) позволяет удобно собирать строки с разделителем, префиксом и суффиксом. Его главное преимущество — он сам следит за тем, чтобы разделитель НЕ ставился после последнего элемента. Вывод: Результат: [A, B]. ⚡️ Не перепутайте: Если вам нужно просто соединить строки через запятую без префиксов, используйте более лаконичный String.join(", ", list). #java #string #stringjoiner #clean_code #basics #интервью #java_interview_tasks

Открыть в Telegram

🔥 Прожарка резюме Java-разработчиков Откликаешься, а в ответ тишина? Или зовут, но предлагают меньше, чем рассчитываешь? Возможно, дело не в навыках, а в резюме. 27 октября рекрутер из Skyeng и Java-разработчик из Wildberries разберут резюме участников в прямом эфире! Что разберём: ✦ почему рекрутер закрывает резюме, не дочитав до конца; ✦ как показать свой вклад и результаты, а не просто перечислить технологии; ✦ какие формулировки могут занизить твой грейд. 🗓 27 октября в 19:00 МСК Участие бесплатное 👥 Спикеры: — Анастасия Дегтярь, Senior TA в Skyeng, 6+ лет в найме; — Виктор Анохин, Java/Kotlin-разработчик в Wildberries, ex-Билайн. Эфир проводит ШОРТКАТ – менторская программа для разработчиков, которые хотят сменить работу или вырасти в грейде и зарплате. Переходи в бота, чтобы зарегистрироваться на эфир: @shortcut_sh_bot Реклама. О рекламодателе.

Открыть в Telegram

Что выведет этот код? StringJoiner joiner = new StringJoiner(", ", "[", "]"); joiner.add("A").add("B"); System.out.println(joiner.toString());

Открыть в Telegram

Что выведет этот код? Anonymous Quiz 7% - A, B 77% - [A, B] 15% - [A, B,] 1% - A, B,

Открыть в Telegram

🔍 Ответ на задачу про WeakHashMap:🧠 В WeakHashMap ключи хранятся как WeakReference. Если на объект-ключ больше никто не ссылается (кроме самой мапы), сборщик мусора имеет право его удалить. Мапа сама заметит исчезновение ключа и удалит соответствующую запись (включая значение). Вывод: Запись будет удалена (ответ 2). Это отличное решение для временного хранения метаданных объектов, время жизни которых вы не контролируете. ⚡️ Не перепутайте: Если вы сделаете слабым значение, а не ключ, мапа работать не будет — WeakHashMap реагирует только на освобождение ключей. #java #collections #weakhashmap #gc #memory #интервью #java_interview_tasks

Открыть в Telegram

Что произойдет с записью в мапе, если на её КЛЮЧ не осталось сильных ссылок? Map<Object, String> map = new WeakHashMap<>(); Object key = new Object(); map.put(key, "data"); key = null; //удаляем ссылку System.gc(); //Форсируем сборку мусора

Открыть в Telegram

Что произойдет с записью в мапе, если на её КЛЮЧ не осталось сильных ссылок? Anonymous Quiz 40% - Запись останется в мапе до вызова `map.clear()`. 45% - Запись будет автоматически удалена при следующей очистке GC. 16% - Ключ удалится, но значение останется (Memory Leak). 0% - Ошибка RuntimeException.

Открыть в Telegram

🔍 Ответ на задачу про PhantomReference: 👻 PhantomReference спроектирована так, что её метод get() всегда возвращает null. Её единственная цель — узнать момент, когда объект был окончательно удален из памяти, через специальную очередь ReferenceQueue. Это гораздо безопаснее и гибче, чем устаревший метод finalize(). Вывод: Код выведет null. Фантомные ссылки используют для очистки ресурсов вне кучи (off-heap memory), когда мы точно знаем, что Java-объект уже "мертв". ⚡️ Не перепутайте: - WeakReference: удаляется при ближайшей сборке мусора. - SoftReference: удаляется только при нехватке памяти. - PhantomReference: объект уже удален, ссылка нужна только для уведомления. #java #jvm #gc #memory #phantomreference #интервью #java_interview_tasks

Открыть в Telegram

Что вернет метод phantomRef.get()? Object obj = new Object(); ReferenceQueue<Object> queue = new ReferenceQueue<>(); PhantomReference<Object> phantomRef = new PhantomReference<>(obj, queue); System.out.println(phantomRef.get());

Открыть в Telegram

Что вернет метод `phantomRef.get()`? Anonymous Quiz 38% - Ссылку на объект `obj`. 48% - null 11% - Ошибка компиляции. 3% - RuntimeException.

Открыть в Telegram

🔍 Ответ на задачу про ThreadLocal: Утечка памяти в серверах 🚰 Веб-серверы используют ThreadPool. Поток не умирает после завершения запроса, а возвращается в пул. Если вы привязали к нему данные через ThreadLocal и не удалили их, эти данные будут висеть в памяти вечно (или пока поток не будет пересоздан), так как на них есть ссылка из живого потока. Вывод: Объект останется в памяти. Всегда вызывайте threadLocal.remove() в блоке finally после завершения работы. ⚡️ Не перепутайте: В современных Java (21+) для таких целей лучше использовать Scoped Values, которые гарантируют очистку данных после выхода из блока. #java #threadlocal #memoryleak #jvm #backend #интервью #java_interview_tasks

Открыть в Telegram

Что произойдет, если положить большой объект в `ThreadLocal` и не вызвать `remove()` в приложении, работающем на Tomcat/Jetty? Anonymous Quiz 18% - Объект будет удален сборщиком мусора, когда поток закончит обработку HTTP-запроса. 68% - Объект останется в памяти, так как потоки в веб-серверах живут в пуле и не умирают. 3% - ThreadLocal сам очистится через 5 минут простоя. 11% - JVM принудительно очищает ThreadLocal при каждой очистке Heap.

Открыть в Telegram

🔍 Ответ на задачу про CountDownLatch vs CyclicBarrier: Одноразовый или нет? 🏁 - CountDownLatch — одноразовый. Как только счетчик упал до нуля, все потоки проходят через await() свободно, и "взвести" его обратно нельзя. - CyclicBarrier — многоразовый. После того как все потоки собрались в точке сбора, барьер сбрасывается и готов к следующему раунду (циклу). У него есть метод reset(). Вывод: CountDownLatch нельзя использовать повторно ⚡️ Не перепутайте: - Нужен старт нескольких потоков одновременно? CyclicBarrier. - Нужно дождаться завершения инициализации чего-либо? CountDownLatch. #java #concurrency #multithreading #latch #barrier #интервью #java_interview_tasks

Открыть в Telegram

Можно ли повторно использовать `CountDownLatch`, когда его счетчик достиг нуля? Anonymous Quiz 24% - Да, вызвав метод `reset()`. 10% - Да, он автоматически сбрасывается. 53% - Нет, это "одноразовый" затвор. 12% - Только если создать его с флагом `isReusable=true`.

Открыть в Telegram

🔍 Ответ на задачу про Semaphore: Кто потерял ключи? 🔑 В отличие от многих других синхронизаторов, Semaphore в Java — это просто счетчик. Метод release() просто увеличивает счетчик разрешений на единицу. Ему совершенно всё равно, вызывали ли вы acquire() до этого. Вывод: Код напечатает 2. Это свойство часто используют для передачи сигналов между потоками: один поток ждет (acquire), а другой подает сигнал о готовности (release). ⚡️ Не перепутайте: Если вам нужен строгий замок, где отдать ключ может только тот, кто его взял — используйте ReentrantLock. #java #concurrency #semaphore #multithreading #интервью #java_interview_tasks

Открыть в Telegram

Комментарии

0

Комментарии пишут вошедшие — так видно, кто автор.

Войти

Комментариев пока нет

Будьте первым, кто расскажет о канале другим.

Пожаловаться на канал

Расскажите, что не так: модератор проверит канал и примет решение. Подпись не нужна, но почту можно оставить — тогда ответим.

Причина Что не так (необязательно) Почта для ответа (необязательно)
Открыть в Telegram