Библиотека собеса по Java | вопросы с собеседований
6.29K subscribers
388 photos
8 videos
406 links
Вопросы с собеседований по Java и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/08c603b6

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Объясните happens-before отношение в Java Memory Model?

happens-before — это гарантированный порядок между операциями, который определяет, что эффект одной операции виден другой. Если операция A happens-before операции B, то все изменения, сделанные в A, будут видны к моменту B.

Примеры гарантий happens-before: запись в volatile поле и последующее чтение того же поля; блокировки synchronized; Thread.start() и Thread.join().

Без гарантии happens-before два потока могут видеть неверные или устаревшие значения: один поток записал в поле, другой не увидит это изменение.

🐸 Библиотека собеса по Java

#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥1👏1
Что такое soft reference, weak reference, phantom reference?

Это разные виды ссылок на объекты из java.lang.ref:

🔹 SoftReference — объекты могут быть удалены GC при нехватке памяти, но склонны дожидаться недостатка памяти. Часто используют для кешей.

🔹 WeakReference — объекты удаляются при следующей сборке, если нет сильных ссылок. Используется, например, для слабых ссылок в картах (WeakHashMap).

🔹 PhantomReference — всегда считается недостижимым, даже если есть phantom-ссылка. Используется, чтобы узнать, что объект уже завершил финализацию, и подготовиться к освобождению ресурсов.

🐸 Библиотека собеса по Java

#jvm
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3👏1
Как в Spring работает proxy-based AOP, и какие ограничения у такого подхода?

Spring AOP обычно работает через создание прокси-объекта (JDK dynamic proxy или CGLIB). Методы вызываются на прокси, который вокруг них вставляет advice (before, after и т.д.).

Ограничения:

Только публичные методы интерфейсов (для JDK proxy) или методы класса (для CGLIB).

Внутренние вызовы (this.method()) не проходят через прокси, advice не сработает.

Прокси не могут перехватывать конструкторы.

Работа с final классами/методами ограничена (не могут быть проксированы).

🐸 Библиотека собеса по Java

#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2🎉1
Время прокачать алгоритмы с 40-процентной скидкой до конца октября

На собеседовании не просят бездумно написать шаблонное решение. Важно понимать, как работают алгоритмы под капотом.

🔹 В курсе ты научишься:

— искать ошибки с помощью редакционного расстояния;
— работать с балансированными деревьями и графами;
— решать задачи с динамическим программированием;
— и многое другое, что пригодится на собеседованиях.

🤔 Решаешь задачи только в тг каналах? Пройди курс и отправляйся на реальные собеседования!

🔗 Подробнее о курсе
Что такое идемпотентность в REST API и как её реализовать?

Идемпотентность означает, что повторный вызов одного и того же запроса не изменяет состояние сервера более одного раза.

Способы реализации:

Использовать контроль состояния (если запись уже существует, не создавать её второй раз).

Использовать HTTP методы по стандарту: GET, PUT, DELETE. Уже идемпотентны по спецификации.

Использовать уникальный ключ (идемпотентный токен) с клиентской стороны; сервер хранит, что уже получал этот токен, и при повторе не выполняет операцию заново.

В Spring → фильтры или interceptors проверяют заголовок Idempotency-Key и используют хранилище (БД, кеш) для управления повторными запросами.

🐸 Библиотека собеса по Java

#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2👏1🌚1
Твой шанс прокачаться в ИТ, заявить о себе на всю страну и побороться за призовой фонд 10 250 000 рублей 💰 Успей зарегистрироваться до 20 октября.

МТС приглашает на True Tech Champ — всероссийский чемпионат по программированию. Выбирай трек по душе или участвуй сразу в двух, чтобы увеличить шансы на победу.

Трек 1. Алгоритмический. Индивидуальный зачет
Работай со структурами данных, решай алгоритмические задачи и сражайся в лайв-кодинге с сильнейшими.

Трек 2. Программирование роботов. Командный формат
Сначала проведи робота по виртуальному лабиринту, затем управляй им дистанционно на офлайн-полигоне, а в финале — пройди испытания на реальной площадке и выбей соперников с платформы.

🎁 Организаторы отправят командам финалистов по одному роботу Waveshare Cobra Flex для кастомизации. После соревнований они останутся у участников в качестве подарка.

Тебя ждет:
— Зрелищный шоу-финал с искусственным интеллектом, цифровыми аватарами и другими технологиями.
— Конференция с лидерами индустрии, кодерские челленджи и возможность прокачать ИТ-навыки.
— Шанс лично пообщаться с HR-специалистами МТС и получить карьерный буст.

📍Шоу-финал пройдет 21 ноября в МТС Live Холл.
Успей зарегистрироваться до 20 октября
✔️ Java-тест: Docker edition

Продолжаем тестить новый формат. Представим задачу 👇

У вас есть Spring Boot-приложение. Нужно собрать Docker-образ, который:
1. Основан на официальном JDK 21
2. Поддерживает порт 8080
3. Настраивает часовой пояс контейнера на Москву (Europe/Moscow)


📦 Задание:

Составьте Dockerfile, который корректно запускает приложение в контейнере по условиям выше.

Ставьте →🔥, если зашёл формат. Если нет, то → 🤔

💬 Скидывайте Dockerfile в комментарии, главное прячьте под спойлер.

🐸 Библиотека собеса по Java

#practise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍3👏1🤔1