es
Feedback

¡No caigas en manos de tramposos! Telemetrio encuentra y marca estos canales 👉 Si quieres ver la etiqueta, suscríbete

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

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

Ir al canal en Telegram

Вопросы с собеседований по Java и ответы на них. По рекламе: @tproger_sales_bot Учиться у нас: clc.to/3wECtA Для обратной связи: @proglibrary_feeedback_bot

Mostrar más
6 375
Suscriptores
-324 horas
-237 días
-5530 días
Archivo de publicaciones
❓ Почему метод с @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

🤔 Как ускорить браузер Закрой все вкладки со словами «MacBook», «купить ноутбук», «ноут в рассрочку». Потому что у нас есть
🤔 Как ускорить браузер Закрой все вкладки со словами «MacBook», «купить ноутбук», «ноут в рассрочку». Потому что у нас есть решение лучше. 🔥 Proglib разыгрывает MacBook Pro 14. Формула простая: покупаешь любой курс до 15 ноября → учишься 2 недели → пишешь куратору #розыгрыш Пока у тебя открыто 147 вкладок с ценами, кто-то уже прокачивает скилы и может забрать приз. 👉🏻 Выбрать курс для участия

💬 Обратная связь Моё отношение к постам за прошлый месяц: 🔥 — Интересно, полезно 🤔 — Нейтрально 😁 — Не понравилось, напишу что 🐸 Библиотека собеса по Java

✔️ Java-тест: Retry с exponential backoff Напишите метод для production-кода 👇 📦 Задание Реализуйте метод, который выполняет операцию с повторными попытками:
public <T> T retry(Supplier<T> operation, 
                   int maxAttempts, 
                   long initialDelayMs) {
    // Ваш код здесь
    // При неудаче - повторить с задержкой
    // Задержка удваивается: 100ms -> 200ms -> 400ms
    // После maxAttempts выбросить исключение
}
Требования — Первая попытка без задержки — Каждая следующая: задержка *= 2 — После maxAttempts пробросить последнее исключение — Если успех - вернуть результат Ставьте → 🔥, если нравится формат. Если нет → 🤔 💬 Решения под спойлер. Сравним, какое будет лучше. 🐸 Библиотека собеса по Java #practise

❓ Расскажите о проблеме N+1? Проблема N+1 возникает при работе с ORM, когда для получения N сущностей с их связанными данными выполняется 1 запрос для основной коллекции и затем N дополнительных запросов для каждой связи. Если у нас 100 пользователей, выполнится 101 запрос вместо одного. Решения: 🔹 JOIN FETCH в JPQL:
@Query("SELECT u FROM User u JOIN FETCH u.orders")
List<User> findAllWithOrders();
🔹 EntityGraph:
@EntityGraph(attributePaths = {"orders"})
List<User> findAll();
🔹 Batch Size (не решает проблему, но группирует запросы):
@BatchSize(size = 10)
private List<Order> orders;
Выбор решения зависит от конкретной ситуации: для единичных запросов подходит JOIN FETCH, для повторяющихся паттернов - EntityGraph или Batch Size. 🐸 Библиотека собеса по Java #spring

🎲 Знаешь, что хуже всего на собесе? Когда задают простой вопрос, а ты не можешь ответить. 🤔 Это ощущение, когда понимаешь:
🎲 Знаешь, что хуже всего на собесе? Когда задают простой вопрос, а ты не можешь ответить. 🤔 Это ощущение, когда понимаешь:
«Блин, я это знаю... вроде... сейчас...»
От «я знаю...» до «сейчас объясню!» всего один курс. ✅ Алгоритмы и структуры данных — от Big O до задач криптографии. ✅ Python для разработчиков — пиши чистый и эффективный код. ✅ Архитектуры и шаблоны — строй системы, которые масштабируются. ✅ Основы IT — всё необходимое для входа в профессию. Выбирай любой и забирай со скидкой 40% только до конца октября. 🔗 Выбрать курс

❓ Как работают лямбды? Лямбда — это краткая форма записи анонимного класса, реализующего функциональный интерфейс (т.е. интерфейс с единственным абстрактным методом, например Runnable или Function). При компиляции лямбда не создает отдельный класс, как раньше анонимные классы. Вместо этого компилятор использует механизм invokedynamic, добавленный в Java 8, чтобы создать ссылку на реализацию метода — функциональный объект формируется динамически во время выполнения. Кратко: Лямбды — это ссылки на поведение, а не объекты. Они компилируются через invokedynamic и создают реализацию функционального интерфейса во время выполнения. 🐸 Библиотека собеса по Java #core

💬 Обратная связь Ежемесячный опрос по грейдам. Растём вместе 💪🏻 Ваш грейд: 🔥 — Senior 👍🏼 — Middle ❤️ — Junior 😁 — Ещё учусь 🐸 Библиотека собеса по Java