Библиотека собеса по Java | вопросы с собеседований – Telegram
Библиотека собеса по Java | вопросы с собеседований
6.38K subscribers
404 photos
9 videos
507 links
Вопросы с собеседований по Java и ответы на них.

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Что такое паттерн Flyweight и где он используется в Java?

Flyweight — это паттерн для экономии памяти путём переиспользования объектов с одинаковым состоянием.

Объект разделяется на intrinsic state (неизменяемое, общее) и extrinsic state (изменяемое, уникальное). Общее состояние хранится в одном экземпляре.

🔹 Примеры:

String Pool (все одинаковые строки ссылаются на один объект)
Integer.valueOf() кеширует числа от -128 до 127
Boolean.TRUE и Boolean.FALSE

Паттерн эффективен, когда создаётся много объектов с повторяющимися данными.

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

#patterns
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1🤔1
В чём разница между @Component, @Service и @Repository?

Технически — никакой. Все три создают Spring bean и работают одинаково.

Разница семантическая:
@Componentобщий стереотип для любого компонента.
@Serviceдля бизнес-логики (service layer).
@Repositoryдля работы с данными (DAO layer).

@Repository имеет дополнительную функцию: перехватывает специфичные для persistence исключения и переводит их в DataAccessException.

Использование правильной аннотации улучшает читаемость и показывает роль класса в архитектуре.

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

#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥91👏1
Что делает метод flatMap() в Stream API?

flatMap() преобразует каждый элемент в Stream и объединяет все Stream'ы в один плоский Stream. В отличие от map() возвращает Stream<T>.

Полезен для работы с вложенными коллекциями или когда операция возвращает Optional/Stream.

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

#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1👏1
Пятница, 19:00. Худшее время для деплоя, но идеальное, чтобы выучить концепцию RAG и уверенно обсуждать её на следующем архитектурном интервью.

Как отвечать на вопросы про ИИ-архитектуру на собеседовании Java-разработчика? Разберём теорию и практику на открытом уроке.

Темы занятия:

— интеграция LLM в Enterprise (RAG vs Fine-tuning);
— хранение эмбеддингов в векторных БД;
— демонстрация работы с PDF-контекстом.

Один из спикеров — Алексей Яндутов, ML-инженер в поиске Яндекса.

Урок открывает курс «Разработка AI-агентов». Мы ориентируемся на тех, кто пишет код. Просьба «просто зрителей» не беспокоить.

Записаться на урок
Что такое Phantom Reference и зачем она нужна?

PhantomReference — самая слабая ссылка в Java. Отличается от WeakReference тем, что get() всегда возвращает null.

Используется для отслеживания момента, когда объект удалён из памяти. После удаления объекта PhantomReference помещается в ReferenceQueue.

В отличие от finalize(), это надёжный способ отследить удаление объекта. Используется редко, в основном во внутренних механизмах или для управления off-heap памятью.

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

#jvm
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2👏2
✔️ Java-тест: Debouncer для частых событий

Напишите метод для production-кода 👇

📦 Задание

Реализуйте debouncer, который откладывает выполнение действия пока события продолжают поступать:

public class Debouncer {
public Debouncer(long delayMs) {
// Ваш код здесь
}

public void call(Runnable action) {
// Ваш код здесь
// Если вызов повторяется до истечения delayMs
// - отменить предыдущий и запланировать новый
// Выполнить только когда delayMs прошло без новых вызовов
}
}


🔹 Требования

— Выполнять action только если delayMs прошло без новых вызовов
— Каждый новый call() отменяет предыдущий таймер
— Использовать ScheduledExecutorService
— Потокобезопасность

🔹 Пример:

Debouncer debouncer = new Debouncer(300); // 300ms
debouncer.call(() -> search(query)); // откладываем
debouncer.call(() -> search(query)); // отменяем предыдущий
debouncer.call(() -> search(query)); // отменяем предыдущий
// Через 300ms выполнится только последний


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

💬 Решения под спойлер. Сравним, какое будет лучше.

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

#practise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍2👏1
Архитектурные вопросы стали сложнее, а ты всё ещё вручную «жаришь» микросервисы?

Настоящий Шеф стоит систему.

В понедельник, 26 января, стартует интенсив по разработке ИИ-агентов. Узнай, как внедрить автономные решения в энтерпрайз-стек.

В программе:

— мультиагентные системы в CrewAI: контроль исполнения задач;
— сложная логика в LangGraph: управление состоянием в графах;
tool use интеграция: связь агентов с внешними сервисами. 🏗️

Записаться на курс
💬 Обратная связь

Как часто вы проходите собеседования?

🔥 — Сейчас активно ищу работу
👍🏼 — Раз в несколько месяцев
❤️ — Раз в полгода-год
😁 — Не прохожу, уже работаю/ещё учусь

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
😁25🔥217👍3
Что такое Race Condition?

Race Condition — это ситуация, когда результат работы программы зависит от порядка выполнения потоков.

Классический пример — инкремент:

// Два потока выполняют:
counter++; // read-modify-write

// Без синхронизации:
// Поток 1: читает 0
// Поток 2: читает 0
// Поток 1: пишет 1
// Поток 2: пишет 1
// Итого: 1 вместо 2


Решения: synchronized, AtomicInteger, Lock, volatile (только для простых операций).

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

#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1👏1
Завтра стартуем: курс по разработке ИИ-агентов

Будьте готовы к вопросам по архитектуре ИИ в энтерпрайзе. Мы научим проектировать мультиагентные связки на CrewAI, управлять сложными состояниями в LangGraph и внедрять ИИ в реальные корпоративные решения.

👉 Успейте занять место до начала занятий
Что делает @Conditional в Spring?

@Conditional позволяет регистрировать бин только при выполнении определённого условия.

@Bean
@Conditional(WindowsCondition.class)
public Service windowsService() {
return new WindowsService();
}

class WindowsCondition implements Condition {
public boolean matches(ConditionContext context,
AnnotatedTypeMetadata metadata) {
return System.getProperty("os.name")
.contains("Windows");
}
}


Spring Boot предоставляет готовые: @ConditionalOnProperty, @ConditionalOnClass, @ConditionalOnMissingBean.

Мощный инструмент для гибкой конфигурации под разные окружения.

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

#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3👏1