Библиотека собеса по Java | вопросы с собеседований
رفتن به کانال در Telegram
Вопросы с собеседований по Java и ответы на них. По рекламе: @tproger_sales_bot Учиться у нас: clc.to/3wECtA Для обратной связи: @proglibrary_feeedback_bot
نمایش بیشتر6 381
مشترکین
-624 ساعت
-197 روز
-5130 روز
آرشیو پست ها
🤷♂️ Что важнее в хорошем курсе: программа или люди, которые её создают?
У Proglib Academy вышел пост о том, на каком опыте построен новый курс по AI для разработчиков 🦴
❓ Что такое Autoboxing и Unboxing?
Autoboxing — автоматическое преобразование примитива в класс-обёртку (int → Integer).
Unboxing — обратное преобразование (Integer → int).
Удобно, но есть подводные камни
— возможен NullPointerException при unboxing null
— снижает производительность (создание объектов)
— проблемы с == (сравнивает ссылки, а не значения)
🐸 Библиотека собеса по Java
#core
❓ В чём разница между IO и NIO?
IO (Input/Output) — это традиционная модель потоков, использующая блокирующие операции для чтения и записи данных, что может привести к задержкам, если операция занимает много времени.
NIO (New IO) был введён в JDK 1.4 для улучшения производительности, предлагая неблокирующие каналы и буферы, а также поддержку асинхронных операций, что позволяет эффективно работать с большими объёмами данных или многими соединениями одновременно.
🐸 Библиотека собеса по Java
#core
Repost from Proglib.academy | IT-курсы
🫡 Один и тот же запрос к AI можно выполнить двумя способами — и получить совершенно разный результат.
1️⃣ способ — просто попросить написать код. Модель может сгенерировать рабочее решение, но именно на этапе проверки часто всплывают пропущенные edge case’ы, ошибки обработки или проблемы с тестами.
2️⃣ способ — дать агенту цикл Think → Act → Observe. Он не останавливается после первой попытки: планирует действия, проверяет результат и, если находит ошибку, исправляет её и пробует снова.
Самое интересное, что разница здесь не столько в модели ❕ Claude, GPT или другая LLM могут быть одинаковыми. Разницу создаёт инженерная система вокруг них.
📅 Именно это разберём 23 июля в 19:00 (МСК) на бесплатном вебинаре с Алексеем Жиряковым (Executive Director в Сбере, GenAI Data Platform, ex-CTO Stream и KION).
На живом демо покажем, как один и тот же запрос работает без агентной системы и с ней 🔥
🔗 Регистрация
🏃♀️ Proglib Academy
❓ Какие объекты стоит использовать для ключей в HashMap?
Ключи должны быть иммутабельными, а также правильно реализовывать методы equals() и hashCode().
🐸 Библиотека собеса по Java
🔥 Курс «Разработка ИИ-агентов» стартовал, но вы еще успеваете присоединиться!
Мы только начали, а первый практический воркшоп пройдет только 23 июля. До этого времени вы спокойно успеете изучить материалы и нагнать группу.
💼 Главная фишка: финальный проект в портфолио:
В финальном проекте вы сможете выбрать один из двух вариантов: реализовать свою идею или решить задачу от партнера курса — крупной российской финтех-компании. Вы будете работать с датасетом, построенным по реальным сценариям, получите бизнес-контекст и продовые ограничения. В результате соберете AI-агента, который станет сильным проектом для портфолио.🎁 Упомяните менеджеру специальное предложение «3 курса по цене 1»: Берете VIP-тариф — получаете курс «Разработка ИИ-агентов», хардкорный «AgentOps» и ещё один курс на выбор. Выгода 129.000 ₽! Двери потока вот-вот закроются окончательно. Успейте забрать стек курсов и начать работу над реальным проектом 🔗 Занять место и забрать 3 курса
🔥 Стартуем СЕГОДНЯ! Новый поток курса «Разработка ИИ-агентов» открыт
По этому поводу мы решили выложить закрытую запись одного из уроков из программы. Найти её в поиске YouTube нельзя — она доступна только по ссылке и всем, кто будет на курсе.
Внутри глубокий разбор LLM от Алексея Яндутова (Senior ML-инженер, развивал ответы «Алисы» и «Нейро» в Яндексе). Учимся получать точный результат без галлюцинаций.
Что внутри урока:
- Устройство LLM. - Рабочие шаблоны промптов (Persona, Chain-of-Thought и др.). - Разбор реального кейса Яндекса. Как автоматизировать разметку, обойти качество людей на 5% и срезать косты на 60%.После просмотра вы поймете, когда хватает промпт-инжиниринга, а когда нужен RAG или fine-tuning. 👉Смотреть закрытый урок на YouTube Понравился урок? Переходите на новый уровень! Оставляйте заявку на курс, чтобы научиться проектировать надежные автономные системы. Обучение началось, но вы еще успеваете присоединиться. 🔗 Занять место на курсе
❓ Расскажите о нагрузочном тестировании?
Нагрузочное тестирование — это проверка поведения системы под различными уровнями нагрузки. Цель — понять, как приложение работает при большом количестве одновременных пользователей или запросов.
Основные проверки:
— время отклика при росте нагрузки;
— максимальное количество пользователей, которое система выдерживает;
— точку деградации производительности;
— стабильность при длительной работе.
Используем инструменты, например, JMeter, Gatling или K6.
🐸 Библиотека собеса по Java
#tests
🚀 Уже завтра стартует новый поток курса «ИИ-агенты»!
Мы собрали мощнейший состав преподавателей. Учить вас проектировать архитектуру и собирать продакшн-агентов будут инженеры и исследователи из топовых IT-компаний.
Старт уже завтра!
Сомневаетесь, подойдет ли вам программа и подача? Начните с бесплатного демо-урока!
Всего за 2 часа вы заглянете под капот ИИ-агента, поймете, чем мышление модели отличается от ее ответа, и научите систему чинить собственный код. Это идеальный способ протестировать нашу платформу перед покупкой.
🔗 Пройти демо-урок и занять место на курсе
❓ Что такое propagation у @Transactional?
Propagation — политика того, как метод с аннотацией @Transactional будет взаимодействовать с существующей транзакцией.
Виды:
▪️ REQUIRED (по умолчанию): использует существующую транзакцию или создаёт новую, если её нет
▪️ REQUIRES_NEW: всегда создаёт новую транзакцию, при этом приостанавливая текущую
▪️ SUPPORTS: действует в рамках текущей транзакции, если есть, иначе без транзакции
▪️ MANDATORY: бросает исключение, если нет текущей транзакции
▪️ NEVER: запрещает наличие транзакции, если уже есть, бросает исключение
▪️ NESTED: создаёт «вложенную» транзакцию (savepoint внутри основной)
🐸 Библиотека собеса по Java
#spring
💬 Обратная связь
Проверяем динамику роста комьюнити :)
Ваш текущий грейд:
🔥 — Senior
👍🏼 — Middle
❤️ — Junior
😁 — Ещё учусь
🐸 Библиотека собеса по Java
🤨 Как заставить AI-агента не ломать архитектуру, а нормально писать код?
Мы привыкли общаться с ИИ промптами, но для автономных систем это путь к бесконечным циклам и сливу бюджета. Чтобы убрать хаос, инженеры переходят на Spec-Driven Development (SDD).
Вот как этот подход меняет работу агента на практике:
🔹Контракт вместо текста. Сначала пишется строгая спецификация (JSON-схема/OpenAPI) и автотесты. Агент зажат в рамки интерфейсов, за которые физически не может выйти.
🔹Контроль на шагах. Внутри петли Think-Act-Observe агент сверяет действия со спецификацией.
🔹Саморефлексия. Если ИИ нарушил типы или «додумал» лишнее, тест падает. Агент получает ошибку в контекст и сам правит код, не выходя за рамки ТЗ.
Это лишь база того, как укротить ИИ-разработку. Если вы хотите глубоко внедрить эту методологию, научиться проектировать архитектурные контракты и собирать отказоустойчивые системы —оставляйте заявку на наш новый курс по Spec-Driven Development. Стартуем совсем скоро🙂
✔️ Concurrency-тест: пул потоков копит задачи до OOM
Нагрузка выросла, latency пополз вверх, потом OutOfMemoryError 👇
📦 Задание — code review
Сервис обрабатывает входящие события асинхронно.
@Configuration
public class ExecutorConfig {
@Bean
public ExecutorService eventExecutor() {
return Executors.newFixedThreadPool(10);
}
}
@Service
@RequiredArgsConstructor
public class EventService {
private final ExecutorService eventExecutor;
public void handle(Event event) {
eventExecutor.submit(() -> process(event));
}
}
▪️ Объясни
— Какая очередь стоит за Executors.newFixedThreadPool и почему она опасна под нагрузкой.
— Почему задачи бесконтрольно «копятся» и система падает в OutOfMemoryError, а не начинает отбрасывать нагрузку.
— Как собрать ThreadPoolExecutor руками: ограниченная очередь, RejectedExecutionHandler, backpressure. Чем плох и newCachedThreadPool в этом сценарии.
Ставьте → 🔥, если нравится формат. Если нет → 🌚
💬 Решения под спойлер. Сравним, какое будет лучше.
🐸 Библиотека собеса по Java
#practise❓ Чем отличаются BeanFactory и ApplicationContext?
BeanFactory — базовый IoC-контейнер с ленивой инициализацией: бины создаются при первом обращении.
ApplicationContext расширяет BeanFactory и добавляет почти всё, чем пользуются на практике:
— eager-инициализацию синглтонов при старте;
— интернационализацию (MessageSource);
— публикацию и обработку событий;
— автоматическую регистрацию BeanPostProcessor и BeanFactoryPostProcessor;
— интеграцию с AOP и удобную работу с ресурсами.
В реальных приложениях используют ApplicationContext. BeanFactory — нишевый вариант для крайне ресурсно-ограниченных сред.
🐸 Библиотека собеса по Java
#spring
🔥 Как перестать слепо доверять ИИ и начать им управлять?
1–2 августа на «ИИ-выходных» вы научитесь проектировать архитектуру автономных AI-агентов и контролировать их работу.
Что будет в вашем портфолио после обучения:
— Вы выйдете с готовым профилем AI-инженера (отлично дополнит ваши LinkedIn и GitHub).
— Освоите связку Python, FastAPI, OpenAI API, Docker и PostgreSQL.
— Соберете полноценный AI-сервис под вашу личную задачу.
Для кого: junior-middle разработчики. Вы пишете на Python, работаете с Git и терминалом (с нуля не подойдет, темп очень быстрый!).
👨💻 Спикер: Алексей Жиряков (Сбер, GenAI).
Места строго ограничены!
👉 Изучить программу и занять место
❓ Что такое fail-fast итератор и как безопасно удалять элементы во время обхода?
fail-fast итератор бросает ConcurrentModificationException, если коллекцию изменили во время итерации в обход самого итератора.
Механизм: коллекция хранит счётчик modCount. Итератор запоминает его значение при создании и сверяет на каждом next(). Если структура изменилась и счётчики разошлись — бросается исключение. Это не гарантия защиты, а способ быстро отловить баг.
Чтобы безопасно удалять во время обхода:
→ iterator.remove();
→ collection.removeIf(...);
→ или конкурентные коллекции вроде CopyOnWriteArrayList.
🐸 Библиотека собеса по Java
#core
❓ Что такое SOLID?
SOLID — это аббревиатура из пяти принципов объектно-ориентированного проектирования, помогающих писать поддерживаемый и расширяемый код.
▪️ S — Single Responsibility Principle (SRP)
Каждый класс должен иметь одну и только одну причину для изменения.
▪️ O — Open/Closed Principle (OCP)
Сущности должны быть открыты для расширения, но закрыты для модификации.
▪️ L — Liskov Substitution Principle (LSP)
Объекты подклассов должны заменять объекты суперклассов без нарушения логики.
▪️ I — Interface Segregation Principle (ISP)
Лучше иметь несколько специализированных интерфейсов, чем один общий.
▪️ D — Dependency Inversion Principle (DIP)
Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба типа должны зависеть от абстракций.
🐸 Библиотека собеса по Java
📹 Из чего на самом деле состоит ИИ-агент?
Прикрепили для вас свежую вырезку из вебинара. Внутри, что прячется под капотом агентных систем: от LLM-ядра до вызова внешних инструментов. Обсуждаем, какими бывают агенты (спойлер: далеко не только автономными) и когда какой подход использовать.
Готовы перейти от видео к практике и собрать свой первый продакшн-кейс?
Прямо сейчас у нас действует акция «3 курса по цене 1»:
🔹 При покупке VIP-тарифа нового потока «Разработка ИИ-агентов» вы получаете в подарок хардкорный курс «AgentOps» + ещё один любой курс Академии на ваш выбор! 🔹 Ваша чистая экономия — 129 000 ₽! Два топовых курса по созданию и контролю агентов обойдутся вам всего в 134 000 ₽ вместо 263 000 ₽. Плюс третий курс бонусом (например, «Математика для AI»).Сомневаетесь, подойдет ли вам формат? Оставьте заявку и пройдите бесплатный демо-урок, чтобы протестировать платформу перед покупкой. 👉 Пройти демо-урок и забрать 3 курса по цене 1
💰 Почему одним Data Scientist платят больше, чем другим?
Дело не только в знании Python и ML-библиотек. Во многих компаниях уровень специалиста оценивают по математической подготовке: теории вероятностей, статистике, линейной алгебре и математическому анализу.
Именно эти знания помогают понимать модели, решать более сложные задачи и претендовать на позиции с более высокой оплатой.
На курсе «Математика для Data Science» вы изучите разделы, которые используются в работе Data Scientist и ML Engineer.
Что вас ждёт:
🔹 40+ видеолекций и 150+ практических заданий на Python
🔹 Проверка домашних работ и обратная связь от преподавателей
🔹 Подготовка к техническим собеседованиям
🔹 Программа от преподавателей ВМК МГУ, НИУ ВШЭ и экспертов индустрии
👉 Записаться на бесплатный демо-урок
❓ Что такое DTO и чем он отличается от Entity?
DTO (Data Transfer Object) — простой объект-контейнер для переноса данных между слоями или по сети, без бизнес-логики.
Он делает структуру данных явной и типизированной вместо ассоциативных массивов, удобен для входных и выходных контрактов API.
Отличие от Entity: у DTO нет идентичности и поведения, только данные.
