ru
Feedback
Библиотека собеса по Java | вопросы с собеседований

Библиотека собеса по Java | вопросы с собеседований

Открыть в Telegram

Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/08c603b6 Для обратной связи: @proglibrary_feeedback_bot

Больше
6 486
Подписчики
+524 часа
+147 дней
+1430 день
Архив постов
Что такое Spring Profiles и зачем они нужны? Spring Profiles — это механизм в Spring, который позволяет разделять конфигурации приложения по окружениям. Например: dev, test, prod. С их помощью можно активировать нужные бины и настройки в зависимости от среды, не меняя код. Типичный пример — разные параметры подключения к БД или API-ключи. Профиль можно указать:в application.properties (spring.profiles.active=dev);через аргументы JVM (-Dspring.profiles.active=prod);или переменные окружения. Это обеспечивает чистое разделение конфигураций и снижает риск ошибок при деплое. 🐸 Библиотека собеса по Java #spring

Какие бывают гарантии доставки сообщений в Kafka? В Kafka существует три уровня гарантий доставки сообщений: 1️⃣ At most once (максимум один раз) Сообщение может быть потеряно, но никогда не будет обработано дважды. Producer отправляет сообщение и не ждет подтверждения (acks=0). Самый быстрый, но ненадежный вариант. 2️⃣ At least once (минимум один раз) Сообщение гарантированно доставлено, но может быть обработано несколько раз. Producer ждет подтверждения от лидера (acks=1) или всех реплик (acks=all). При повторной отправке возможны дубликаты. Используется чаще всего. 3️⃣ Exactly once (ровно один раз) Сообщение доставляется и обрабатывается строго один раз. Достигается через idempotent producer (enable.idempotence=true) и транзакции. Самый надежный, но с небольшим оверхедом по производительности. Выбор зависит от задачи: для логов подойдет at most once, для финансовых операций — exactly once, для большинства случаев — at least once с идемпотентной обработкой. 🐸 Библиотека собеса по Java #core

🖤 ЧЕРНАЯ ПЯТНИЦА: СКИДКА 40% Что общего между Black Friday и подготовкой к собесам? Оба случаются раз в год, и оба нельзя пр
🖤 ЧЕРНАЯ ПЯТНИЦА: СКИДКА 40% Что общего между Black Friday и подготовкой к собесам? Оба случаются раз в год, и оба нельзя пропустить! 😎 🔥 Курсы со скидкой 40% до конца ноября: 🐍 Python 📐 Математика 🤖 AI 🔢 Алгоритмы и структуры Пока другие покупают кофемашины и телевизоры, инвестируй в себя📈

Что такое статическое и динамическое связывание? 🔹 Статическое связывание (или раннее связывание) — это связывание метода с его вызовом на этапе компиляции. Используется для: — static методов;private методов; final методов;перегруженных методов (overloading). Решение принимается на основе типа ссылки. 🔹 Динамическое связывание (или позднее связывание) — это связывание метода с его вызовом во время выполнения программы (runtime). Используется для: — переопределенных методов (overriding);реализации полиморфизма. Решение принимается на основе фактического типа объекта. 🐸 Библиотека собеса по Java #core

✔️ Java-тест: Безопасное извлечение значений из Map Напишите метод для production-кода 👇 📦 Задание Реализуйте метод для безопасного получения значения из вложенной Map с default-значением:
public class MapUtils {
    
    public static <T> T getNestedValue(Map<String, Object> map, 
                                        String path, 
                                        T defaultValue) {
        // Ваша реализация
    }
}
Требования — Путь задается через точку: "user.address.city" — Если любой уровень вложенности null или отсутствует → вернуть defaultValue — Обработать пустой путь → вернуть defaultValue — Обработать null в параметрах → вернуть defaultValue Примеры использования
Map<String, Object> data = Map.of( "user", Map.of( "name", "John", "age", 30, "address", Map.of( "city", "Moscow" ) ) ); String city = getNestedValue(data, "user.address.city", "Unknown"); // → "Moscow" Integer age = getNestedValue(data, "user.age", 0); // → 30 String country = getNestedValue(data, "user.address.country", "Russia"); // → "Russia" (не найдено)
Ставьте → 🔥, если нравится формат. Если нет → 🤔 💬 Решения под спойлер. Сравним, какое будет лучше. 🐸 Библиотека собеса по Java #practise

Что такое нагрузочное тестирование? Нагрузочное тестирование — это проверка поведения системы под различными уровнями нагрузки. Цель — понять, как приложение работает при большом количестве одновременных пользователей или запросов. Обычно проверяем:время отклика при росте нагрузкимаксимальное количество пользователей, которое система выдерживаетточку деградации производительностистабильность при длительной работе Используем инструменты типа JMeter, Gatling или K6. 🐸 Библиотека собеса по Java #tests

💬 Обратная связь Хештег с темой вопроса: 🔥 — Супер, удобно 😁 — Неудобно, верните как было 🐸 Библиотека собеса по Java

Почему метод с @Transactional, вызванный из другого метода того же класса, не открывает транзакцию? Spring использует proxy-объекты для обработки @Transactional. Когда вы вызываете метод извне класса, вызов идет через proxy, который оборачивает метод в транзакцию. Но при вызове метода внутри того же класса (this.method()), вы обращаетесь напрямую к реальному объекту, минуя proxy. 🐸 Библиотека собеса по Java #spring

Представь ситуацию? Есть Spring Boot приложение с несколькими @Configuration классами, и в них определены бины с одинаковыми именами. Что произойдет при старте приложения и как Spring разрешит этот конфликт? 🔹 Ответ: Spring выбросит BeanDefinitionOverrideException при старте приложения. Если нужно разрешить конфликт, есть несколько путей: — Использовать @Primary — Использовать @Qualifier — Использовать профили (@Profile) 🐸 Библиотека собеса по Java #spring

5 ноября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Midd
5 ноября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика. Как это будет: 📂 Илья Аров, старший разработчик в МТС, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Илья будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Илье Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot Реклама. О рекламодателе.

Разница StackOverflowError и OutOfMemoryError? — StackOverflowError Возникает когда переполняется стек вызовов конкретного потока. Обычно из-за бесконечной или слишком глубокой рекурсии. — OutOfMemoryError Возникает когда JVM не может выделить память в куче (heap) для новых объектов. Это проблема всего приложения, а не отдельного потока. 🐸 Библиотека собеса по Java #jvm

Какие существуют проблемы в многопоточной среде? Основные проблемы многопоточности: 1️⃣ Race Conditionкогда результат работы зависит от порядка выполнения потоков. Например, два потока одновременно изменяют одну переменную без синхронизации. 2️⃣ Deadlockвзаимная блокировка, когда потоки ждут друг друга. Классика: поток А держит ресурс 1 и ждёт ресурс 2, а поток Б держит ресурс 2 и ждёт ресурс 1. 2️⃣ Livelockпотоки активны, но не могут продолжить работу, постоянно реагируя на действия друг друга. Например, как два человека в коридоре, которые одновременно пытаются уступить дорогу. 4️⃣ Starvationпоток никогда не получает доступ к ресурсу из-за того, что другие потоки постоянно его перехватывают. 5️⃣ Memory Visibility изменения, сделанные одним потоком, могут быть не видны другим из-за кэширования в CPU. 🐸 Библиотека собеса по Java #concurrency

✔️ Java-тест: Группировка строк по длине Напишите метод для production-кода 👇 📦 Задание Реализуйте метод, который группирует строки по их длине:
public Map<Integer, List<String>> groupByLength(List<String> strings) {}
Требования — Обработать null и пустой список → вернуть пустую Map — Игнорировать null-элементы в списке — Порядок строк в группах сохраняется — Пустые строки группировать с ключом 0 Ставьте → 🔥, если нравится формат. Если нет → 🤔 💬 Решения под спойлер. Сравним, какое будет лучше. 🐸 Библиотека собеса по Java #practise

Что такое enum? Enum используется для определения ограниченного набора именованных констант, которые логически связаны между собой. Он делает код безопаснее и читаемее по сравнению с "магическими" числами или строками. Кроме того, enum может содержать:поля и методы, чтобы хранить доп. данные (например, код статуса);конструктор (по умолчанию private);переопределение методов (например, toString() или abstract-методы для каждого элемента). 🐸 Библиотека собеса по Java #core

✨ Halloween Special — последний день магии! 👻 Успевай сегодня купить курсы со скидкой 40%! А также участвуй в розыгрыше MacB
✨ Halloween Special — последний день магии! 👻 Успевай сегодня купить курсы со скидкой 40%! А также участвуй в розыгрыше MacBook Pro 14 💻 После полуночи останется только тыква 🎃 🔮 Открой портал и выбери курс

Код-ревью Java-проекта прямо в браузере, как в IDE? Похоже на правду! 👀 Джависты, внимание. Платформа SourceCraft выкатила к
Код-ревью Java-проекта прямо в браузере, как в IDE? Похоже на правду! 👀 Джависты, внимание. Платформа SourceCraft выкатила кодонавигацию для Java, которая работает прямо в веб-интерфейсе. Можно открыть любой класс и одним кликом перейти к декларации метода, увидеть все его использования (Find Usages), посмотреть историю изменений по коммитам. 🔥 Это дико удобно при ревью или анализе больших проектов — не нужно клонировать репо и настраивать IDE. Всё работает из браузера. Для команд это реальная экономия времени. По сути, полноценное code-review пространство со встроенными IDE-инструментами.

Что означает ключевое слово native? Ключевое слово native используется для объявления методов, реализация которых написана не на Java, а на других языках — обычно C или C++. Такие методы называются нативными. Когда мы объявляем метод как native, мы указываем только его сигнатуру без тела метода. Реальная реализация находится в нативной библиотеке (.dll, .so), которая подключается через JNI (Java Native Interface). Нативные методы используются для:Работы с системными ресурсами и API операционной системыПовышения производительности критичных участков кодаИспользования существующих библиотек на C/C++ 🐸 Библиотека собеса по Java #core

Что такое GraphQL? GraphQL — это язык запросов для API и среда выполнения этих запросов, разработанный Facebook. 🔹 Ключевые особенности: В отличие от REST, клиент запрашивает ровно те данные, которые ему нужны, в одном запросе. Это решает проблемы over-fetching (получение лишних данных) и under-fetching (когда нужно делать несколько запросов). ✔️ ПлюсыГибкость на клиентеСтрогая типизация через схемуОдин эндпоинтХорошая документация "из коробки" МинусыСложность кешированияМожет быть оверхед для простых APIТребует дополнительных библиотек на бэкенде 🐸 Библиотека собеса по Java #core

Команда Яндекса — это профессионалы, которые одержимы своим делом и решают задачи, где нет готовых решений. Сейчас мы ищем си
Команда Яндекса — это профессионалы, которые одержимы своим делом и решают задачи, где нет готовых решений. Сейчас мы ищем сильных бэкенд-разработчиков — с опытом от 3 лет на C++, Python, Java или Go. Участвуйте в Week Offer, чтобы получить офер онлайн, всего за неделю. Как будет проходить Week Offer Backend? • Подайте заявку до 12 ноября. • Пройдите технические секции 15 и 16 ноября. • Познакомьтесь с командами и получите офер 17–21 ноября. Если вам интересно строить полезные сервисы вокруг ИИ-технологий, проводить исследования и превращать их в реальные продукты для миллионов пользователей — переходите по ссылке. На сайте собрали все подробности.

Как между собой связаны Iterable, Iterator и цикл for-each? Iterable — это интерфейс с единственным методом iterator(), который возвращает объект Iterator. Любой класс, реализующий Iterable, может использоваться в цикле for-each. Iterator — это интерфейс для последовательного обхода элементов коллекции. Содержит методы hasNext(), next() и remove(). Цикл for-each — это синтаксический сахар. Компилятор автоматически преобразует его в вызов iterator() и работу с Iterator. 🐸 Библиотека собеса по Java #core

Библиотека собеса по Java | вопросы с собеседований - Статистика и аналитика Telegram-канала @java_interview_lib