Библиотека собеса по 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
Пятница, 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
👍9🔥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
🔥8👍2👏1
Архитектурные вопросы стали сложнее, а ты всё ещё вручную «жаришь» микросервисы?

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

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

В программе:

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

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

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

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

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
😁29🔥228👍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
👍8🔥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
👍12🔥3👏1
Что такое Record?

Record (с Java 14) — это специальный класс для неизменяемых данных-носителей.

record Person(String name, int age) { }

// Автоматически генерируется:
// - конструктор
// - геттеры (name(), age())
// - equals(), hashCode(), toString()


✔️ Преимущества:

минимум boilerplate;
иммутабельность из коробки;
компактный синтаксис.

Ограничения:

нельзя наследоваться (final);
все поля final;
нельзя объявлять instance поля вне компонентов.

Хорошо подходит для DTO, value objects.

⚠️ Почему в реальных проектах используют нечасто

Проблемы с неймингом: геттеры без префикса get нарушают JavaBeans-конвенции (name() вместо getName()), что ломает совместимость со многими фреймворками.
Проблемы совместимости с библиотеками: многие фреймворки (Jackson, Hibernate/JPA, Spring Data) требуют дополнительной настройки или вовсе не поддерживают records.

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

#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3👏1
Можно ли изменить значение final переменной через рефлексию?

Технически можно, но это нарушает контракт final и приводит к непредсказуемому поведению.

▪️ Проблемы

JVM может заинлайнить final значение при компиляции.
Изменения могут не отразиться из-за оптимизаций.
Нарушается thread-safety гарантия final.

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

#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91🔥1