fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

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

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

رفتن به کانال در Telegram

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

نمایش بیشتر
6 381
مشترکین
-624 ساعت
-197 روز
-5130 روز
آرشیو پست ها
❓ Что такое проблема N+1 и как её решить? N+1 возникает при ленивой загрузке связанных сущностей в ORM. Чтобы получить список из N объектов, выполняется 1 запрос на сам список плюс по 1 запросу на подгрузку связи у каждого объекта — итого N+1 запросов. Например, 100 заказов с ленивым клиентом → 1 запрос на заказы + 100 запросов на клиентов = 101 запрос вместо одного-двух. На больших объёмах это убивает производительность. Решения: — JOIN FETCH или @EntityGraph, чтобы подтянуть связь одним запросом; — batch fetching, для загрузки связей пачками; — DTO-проекция одним запросом, без загрузки целых сущностей. 🐸 Библиотека собеса по Java #sql

🔥 Открытое занятие по AgentOps — курс стартовал! Сегодня в 19:00 по МСК пройдет первое занятие нового потока, на которое мож
🔥 Открытое занятие по AgentOps — курс стартовал! Сегодня в 19:00 по МСК пройдет первое занятие нового потока, на которое может прийти каждый. Оцените пользу нашего подхода на ретрансляции урока в VK! 👨‍💻 Спикер: Андрей Носов Тема: Архитектура управления: state machine для AI-агентов Будем разбираться, как использовать State machine в качестве главного оружия против стохастики (непредсказуемости) LLM. Что в программе: ● State machine: инварианты и терминальные состояния; ● Паттерны маршрутизации: Supervisor, ReAct, Plan-and-Solve; ● Детекция циклов и настройка аварийных выходов; ● Абстракция от модели: как сделать каркас, который переживет смену LLM/провайдера; ● Адаптация графов под ограничения локальных моделей; ● Версионирование графов и миграции стейта. Результат занятия: Вы поймете, как спроектировать надежный каркас агента с жестким контролем исполнения и переходов. 👉 Подписывайтесь на нашу группу ВКонтакте, чтобы не пропустить старт трансляции!

✔️ Java-тест: индексация списка в Map Напишите метод для production-кода 👇 📦 Задание Реализуйте метод, который строит индекс «email → пользователь»:
public Map<String, User> indexByEmail(List<User> users) {
    // Ваша реализация
}
📋 Требования — На вход может прийти null или пустой список → вернуть пустую Map. — В списке встречаются пользователи с одинаковым email → при дубле оставить последнего (и обоснуйте политику). — email может быть null → такие записи пропускать. — Порядок итерации сохранять. Ставьте → 🔥, если нравится формат. Если нет → 🤔 💬 Решения под спойлер. Сравним, какое будет лучше. 🐸 Библиотека собеса по Java #practise

🎬 Как ИИ ускоряет разработку и где ломаются архитектуры Мы провели открытый вебинар, где разобрали реальные боли проектирова
🎬 Как ИИ ускоряет разработку и где ломаются архитектуры Мы провели открытый вебинар, где разобрали реальные боли проектирования автономных систем. Ольга Лукьянова на практическом кейсе показала, как использовать ИИ-ассистентов для реальных задач. Вы просили запись встречи — она уже в открытом доступе! Что внутри: — Как с помощью ИИ быстрее разбираться в незнакомом коде и готовить пулл-реквесты; — Критерии выбора между одним агентом и мультиагентной системой; — Разбор популярных архитектурных ошибок и ограничений современных ИИ; — Практические рекомендации по проектированию и внедрению облачных агентов. 👉 Посмотреть полную запись можно тут: ● VK ● YouTube 🚀 Хотите пойти дальше открытого вебинара? Если вы готовы перейти от простых промптов к проектированию надежных, отказоустойчивых ИИ-систем, которые не сливают бюджет компании на API, приходите на курс AgentOps. Поток уже стартовал, но двери еще приоткрыты! 👉 Успеть на курс AgentOps

🎮 Планы на выходные: соберите ИИ-агента в нашей новой игре! Запустили интерактивную аркаду, где вы на практике поймете, как
🎮 Планы на выходные: соберите ИИ-агента в нашей новой игре! Запустили интерактивную аркаду, где вы на практике поймете, как устроены агентные системы.
Юзеры бомбят в чате, тикеты горят, вам нужно спасать прод 🤓. Выстраивайте граф агента, подключайте узлы (RAG, CRM, Guardrails) и принимайте решения на развилках, чтобы бот не сливал данные.
Какие навыки проверите: - Архитектура: сборка графов на LangGraph; - Компоненты: интеграция LLM, RAG и памяти; - Безопасность: настройка Guardrails и отладка ошибок; - Стейт: логика на сложных развилках. Бонус: Больше баллов — выше скидка на обучение! Наш новый поток стартует 14 июля. При покупке курса вы забираете еще 2 любых курса Академии в подарок! Протестируйте свою инженерную логику и заберите максимальную скидку на обучение. 👉 Сыграть в аркаду и выбить скидку

❓ Как Spring реализует AOP и какие у проксей ограничения? AOP выносит сквозную логику (транзакции, логирование, безопасность) в аспекты, не загрязняя бизнес-код. Spring применяет advice через прокси: JDK dynamic proxy, если бин реализует интерфейс, или CGLIB (наследование класса), если интерфейса нет. Advice срабатывает только при вызове через прокси. Отсюда ограничения: → self-invocation не перехватывается; → CGLIB не может проксировать final-классы и методы, а также private-методы; → работает только на бинах, управляемых Spring. 🐸 Библиотека собеса по Java #spring

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

❓ Чем отличаются HashSet, LinkedHashSet и TreeSet? — HashSet поверх HashMap, без гарантий порядка, операции в среднем O(1). Требует корректных hashCode/equals. — LinkedHashSet сохраняет порядок вставки за счёт двусвязного списка поверх хеш-таблицы, операции O(1), но чуть больше памяти. — TreeSet основан на красно-чёрном дереве, элементы хранятся отсортированными (по Comparable или Comparator), операции O(log n). Поддерживает навигацию: first, ceiling, headSet, диапазоны. Выбор: нужен порядок добавления — LinkedHashSet, нужна сортировка или диапазонные запросы — TreeSet, в остальных случаях — HashSet. 🐸 Библиотека собеса по Java #core

ОПРОС: Ответьте на пару вопросов и получите промокод на все наши курсы! 🎁 Команда Prоglib.аcаdemy готовит к запуску новые пр
ОПРОС: Ответьте на пару вопросов и получите промокод на все наши курсы! 🎁 Команда Prоglib.аcаdemy готовит к запуску новые продукты, и нам нужна ваша помощь. Мы хотим создавать обучение, которое будет решать ваши реальные карьерные задачи и бить точно в цель. Поделитесь своим опытом и ожиданиями, чтобы мы сделали наши курсы еще полезнее именно для вас! Заполнение анкеты займет буквально 2–3 минуты, а с нас — скидка на любой наш курс! 👉 Пройти опрос в Яндекс Формах и забрать промокод

⚠️ Уже завтра стартует курс AgentOps! Мы собрали на потоке сборную из мастеров IT-рынка. Практики из BigTech научат вас контр
⚠️ Уже завтра стартует курс AgentOps! Мы собрали на потоке сборную из мастеров IT-рынка. Практики из BigTech научат вас контролировать и отлаживать ИИ-агентов, чтобы они работали предсказуемо и не сливали бюджет на API. 🔥 Заберите 3 курса по цене 1:
● При покупке VIP-тарифа (осталось 4 места) нового потока «Разработка ИИ-агентов» получаете в подарок курс «AgentOps» + ещё один любой курс Академии (например, «Математика для разработки AI», чтобы глубже освоить направление). ● Три курса обойдутся вам всего в 134.000 ₽ вместо 263.000 ₽. ● Доступна удобная беспроцентная рассрочка, платеж можно разбить на несколько комфортных частей.
Хотите прокачать свое портфолио продакшн-кейсом, но пока сомневаетесь? Пройдите наш бесплатный демо-урок, чтобы протестировать формат перед покупкой. 👉 Забрать 3 курса по цене 1 и получить демо-урок

❓ Чем List.of() отличается от Collections.unmodifiableList()? Оба не позволяют менять список через свой интерфейс, но гарантии разные. List.of() (Java 9) создаёт по-настоящему неизменяемую коллекцию: компактное представление, запрет на null, любая попытка модификации — UnsupportedOperationException. Менять нечего и неоткуда. Collections.unmodifiableList() создаёт лишь обёртку-представление над существующим списком. Сама обёртка менять не даёт, но если изменить оригинальный список, изменения будут видны через обёртку. То есть это «view только для чтения», а не неизменяемая копия. 🐸 Библиотека собеса по Java #core

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

❓ Чем композиция отличается от наследования? Наследование — это отношение «is-a», поведение родителя достаётся подклассу статически на этапе компиляции. Композиция — отношение «has-a», объект делегирует работу вложенным объектам. Проблемы наследования: сильная связанность с деталями реализации родителя (fragile base class), нарушение инкапсуляции, негибкость (только один родитель), лёгкость нарушить принцип Лисков. Композиция более гибкая: поведение можно менять в рантайме (паттерн «Стратегия»), зависимости легко подменять в тестах, нет хрупкой иерархии. Отсюда принцип «предпочитай композицию наследованию». Наследование оправдано при настоящем «is-a» и стабильной иерархии. 🐸 Библиотека собеса по Java #core

💬 Обратная связь Текущий уровень сложности вопросов? 🔥 — Слишком просто, хочу сложнее 👍🏼 — В самый раз ❤️ — Иногда сложновато 😁 — Часто не понимаю 🐸 Библиотека собеса по Java

⭐️ Dream Team 5-го потока: научитесь строить ИИ-агентов у практиков из BigTech 14 июля стартует новый поток курса по разработ
⭐️ Dream Team 5-го потока: научитесь строить ИИ-агентов у практиков из BigTech 14 июля стартует новый поток курса по разработке ИИ-агентов, и в этот раз мы собрали по-настоящему звездный состав менторов. Это эксперты, которые прямо сейчас определяют развитие AI в России: Yandex Cloud, Avito AI Lab, cloud․ru и НИУ ВШЭ. Чтобы ваш вход в ИИ-инженерию был максимально мощным, мы подготовили специальное предложение: до 30 июня при покупке курса по ИИ-агентам вы получаете еще 2 любых курса Академии в подарок! 🔥 Как это работает: вы оставляете заявку на курс по разработке ИИ-агентов и указываете менеджеру ещё два курса, которые хотите забрать бесплатно. 👉Заберите 3 курса по цене 1 на звездном потоке по ИИ-агентам

❓ Что такое идемпотентность и почему она важна? Идемпотентная операция при многократном выполнении даёт тот же результат, что и при однократном. В HTTP идемпотентны GET, PUT, DELETE, а POST — нет. Почему это критично: в распределённых системах сетевые сбои и таймауты приводят к автоматическим повторам (retry). Если операция не идемпотентна — например, «снять 100 рублей» — повтор спишет деньги дважды. Подходы к идемпотентности: → идемпотентные ключи (idempotency key) для дедупликации повторных запросов; → проектирование операций как «установить состояние X», а не «изменить на дельту»; → отслеживание уже обработанных id запросов. Особенно важно для платежей и очередей сообщений с гарантией at-least-once. 🐸 Библиотека собеса по Java

🎬 Где ломаются архитектуры ИИ-агентов и как этого избежать: запись урока от Proglib.Academy и cloud․ru Proglib.аcademy вмест
🎬 Где ломаются архитектуры ИИ-агентов и как этого избежать: запись урока от Proglib.Academy и cloud․ru Proglib.аcademy вместе с cloud․ru провели вебинар, где разобрали реальные боли проектирования автономных систем. Вы просили запись встречи — она уже в открытом доступе! Что внутри: — критерии выбора между одним агентом и мультиагентной системой; — разбор популярных архитектурных ошибок; — реальные ограничения современных ИИ-агентов; — практические рекомендации по проектированию агентных систем. 👉 Посмотреть запись можно тут: ● VK ● YouTube

✔️ Spring-тест: рассылка ушла клиентам трижды Подняли 3 реплики в k8s, и клиенты получили одно и то же письмо три раза 👇 📦 Задание — code review Ежедневная рассылка счетов через @Scheduled.
@Component
@RequiredArgsConstructor
public class BillingScheduler {

    private final InvoiceService invoiceService;

    @Scheduled(cron = "0 0 9 * * *")
    public void sendDailyInvoices() {
        List<Invoice> due = invoiceService.findDueToday();
        due.forEach(invoiceService::sendAndMarkSent);
    }
}
▪️ Объясни — Почему @Scheduled выполняется на каждой реплике и приводит к дублирующим отправкам. — Почему «сначала проверим флаг isSent, потом отправим» не спасает от гонки между подами. — Какие есть решения и их трейд-оффы. Ставьте → 🔥, если нравится формат. Если нет → 🌚 💬 Решения под спойлер. Сравним, какое будет лучше. 🐸 Библиотека собеса по Java #practise

✔️ Spring-тест: рассылка ушла клиентам трижды Подняли 3 реплики в k8s — и клиенты получили одно и то же письмо три раза 👇 📦 Задание — code review Ежедневная рассылка счетов через @Scheduled.
@Component
@RequiredArgsConstructor
public class BillingScheduler {

    private final InvoiceService invoiceService;

    @Scheduled(cron = "0 0 9 * * *")
    public void sendDailyInvoices() {
        List<Invoice> due = invoiceService.findDueToday();
        due.forEach(invoiceService::sendAndMarkSent);
    }
}
▪️ Объясни — Почему @Scheduled выполняется на каждой реплике и приводит к дублирующим отправкам. — Почему «сначала проверим флаг isSent, потом отправим» не спасает от гонки между подами. — Какие есть решения (ShedLock, распределённая блокировка, отдельный воркер, выборка с FOR UPDATE SKIP LOCKED) и их трейд-оффы. Ставьте → 🔥, если нравится формат. Если нет → 🌚 💬 Решения под спойлер. Сравним, какое будет лучше. 🐸 Библиотека собеса по Java #practise

❓ Что такое идемпотентность и почему она важна в API и распределённых системах? **Ответ:** идемпотентная операция при многократном выполнении даёт тот же результат, что и при однократном. В HTTP идемпотентны `GET`, `PUT`, `DELETE`, а `POST` — нет. Почему это критично: в распределённых системах сетевые сбои и таймауты приводят к автоматическим повторам (retry). Если операция не идемпотентна — например, «снять 100 рублей» — повтор спишет деньги дважды. Подходы к идемпотентности: - идемпотентные ключи (idempotency key) для дедупликации повторных запросов; - проектирование операций как «установить состояние X», а не «изменить на дельту»; - отслеживание уже обработанных id запросов. Особенно важно для платежей и очередей сообщений с гарантией at-least-once. 🐸 Библиотека собеса по Java