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

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

@java_interview_lib

Вопросы с собеседований по Java и ответы на них.

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

Учиться у нас: clc.to/3wECtA

Для обратной связи: @proglibrary_feeedback_bot
Subscribers
6.44K
Photos
438
Videos
12
Links
733

Showing posts older than #1439 · Back to latest

Older Posts 20 shown
Post #1438 968
Расскажите о volatile?

volatile — это модификатор переменной, который гарантирует:

▪️ Видимость изменений между потоками
▪️ Запрет кэширования в регистре потока

Использовать стоит, когда:

▪️ Есть несколько потоков, которые читают/пишут одну переменную.
▪️ Нет сложных операций над этой переменной (например, инкрементов, которые требуют атомарности).

volatile не обеспечивает атомарности, поэтому для операций «чтение-модификация-запись» нужны синхронизация или атомарные типы (AtomicInteger, AtomicReference и т.п.).

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

#concurrency
  • 👍 3
  • ❤‍🔥 1
  • ❤ 1
Post #1437 647

Forwarded from Proglib.academy | IT-курсы

😸 Каждый разработчик подходит к задаче со своим опытом: помнит прошлые решения, знает ограничения проекта и понимает, какой код команда пропустит на ревью.

Для человека это естественная часть работы. У Claude Code этого контекста по умолчанию нет — только задача и инструкции, которые ему дали.

Поэтому в большой команде недостаточно просто выбрать хорошую модель.

❗️ Нужно ещё объяснить ей, как у вас устроена разработка: какие подходы приняты, что обязательно проверять и по каким правилам принимать решения.


🗓 23 июля в 19:00 МСК поговорим об этом на бесплатном вебинаре с Алексеем Жиряковым — он Executive Director в Сбере, руководит
GenAI Data Platform, и с этой проблемой сталкивался не раз 🔥

Покажет живое демо, разберём, как встроить AI в процесс разработки так, чтобы он реально помогал, а не добавлял ещё один повод для споров на ревью.

🔗 Занять место на вебинаре

🏃‍♀️ Proglib Academy
Post #1436 1.01K
Разница между Lambdas и Anonymous Classes?

И лямбды, и анонимные классы позволяют создавать "одноразовые" реализации, но лямбды — это более короткий и функциональный способ записать код, реализующий функциональный интерфейс (т.е. интерфейс с одним абстрактным методом).

Ключевые отличия:

→ Синтаксис: лямбда короче и читабельнее.

→ Производительность: лямбды компилируются как invoke-dynamic и не создают новый класс → меньше накладных расходов.

→ this: внутри лямбды this указывает на внешний объект, а в анонимном классе — на экземпляр самого анонимного класса.

→ Назначение: анонимные классы подходят, если нужно переопределить несколько методов или иметь состояние. Лямбды — только для одного метода.

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

#core
  • 👍 5
  • 🔥 2
  • 👏 1
Post #1435 876
StackOverflowError vs OutOfMemoryError?

🔹 StackOverflowError

Возникает когда переполняется стек вызовов конкретного потока. Обычно из-за бесконечной или слишком глубокой рекурсии.

🔹 OutOfMemoryError

Возникает когда JVM не может выделить память в куче (heap) для новых объектов. Это проблема всего приложения, а не отдельного потока.

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

#jvm
  • 👍 3
  • 🔥 2
  • ❤‍🔥 1
Post #1434 956
Какие бывают гарантии доставки сообщений в Kafka?

В Kafka существует три уровня гарантий доставки сообщений:

1️⃣ At most once (максимум один раз)

Сообщение может быть потеряно, но никогда не будет обработано дважды. Producer отправляет сообщение и не ждет подтверждения (acks=0). Самый быстрый, но ненадежный вариант.

2️⃣ At least once (минимум один раз)

Сообщение гарантированно доставлено, но может быть обработано несколько раз. Producer ждет подтверждения от лидера (acks=1) или всех реплик (acks=all). При повторной отправке возможны дубликаты. Используется чаще всего.

3️⃣ Exactly once (ровно один раз)

Сообщение доставляется и обрабатывается строго один раз. Достигается через idempotent producer (enable.idempotence=true) и транзакции. Самый надежный, но с небольшим оверхедом по производительности.

Выбор зависит от задачи: для логов подойдет at most once, для финансовых операций — exactly once, для большинства случаев — at least once с идемпотентной обработкой.

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

#core
  • 👍 8
  • 🔥 2
  • 👏 1
Post #1433 989
✔️ Java-тест: сортировка падает только на больших данных

Локально всё ок, на проде — IllegalArgumentException: Comparison method violates its general contract! 👇

📦 Задание — code review


Сортируем товары: сначала в наличии, потом по убыванию рейтинга.
products.sort((a, b) -> {
if (a.isInStock() && !b.isInStock()) return -1;
if (!a.isInStock() && b.isInStock()) return 1;
return (int) (b.getRating() - a.getRating()); // rating: double
});


▪️ Объясни

— Почему этот компаратор нарушает контракт (нетранзитивность / нарушение антисимметрии) и почему падает только на достаточно больших списках.
— Как переписать, чтобы было корректно и читаемо.

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

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

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

#practise
  • 🔥 2
  • 👍 1
  • 👏 1
Post #1432 616

Forwarded from Proglib.academy | IT-курсы

🧑‍💻 Учиться агентной разработке — у тех, кто уже внедряет её в бигтехе

Курс «ИИ для разработчиков» ведут практики из ведущих российских IT-компаний 🔥

🔵 Они прошли путь от первых экспериментов с AI до рабочих процессов, в которых агенты помогают команде писать код, готовить PR и быстрее доводить задачи до продакшена.

В ближайшее время познакомим вас с каждым преподавателем. Программа курса — по ссылке 🎹

🏃‍♀️ Proglib Academy
Post #1431 871
🤷‍♂️ Что важнее в хорошем курсе: программа или люди, которые её создают?

У Proglib Academy вышел пост о том, на каком опыте построен новый курс по AI для разработчиков 🦴
Post #1430 959
Что такое Autoboxing и Unboxing?

Autoboxing — автоматическое преобразование примитива в класс-обёртку (int → Integer).
Unboxing — обратное преобразование (Integer → int).

Удобно, но есть подводные камни

возможен NullPointerException при unboxing null
снижает производительность (создание объектов)
проблемы с == (сравнивает ссылки, а не значения)

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

#core
  • ❤ 3
  • 👍 2
  • 🔥 1
Post #1429 910
В чём разница между IO и NIO?

IO (Input/Output) — это традиционная модель потоков, использующая блокирующие операции для чтения и записи данных, что может привести к задержкам, если операция занимает много времени.

NIO (New IO) был введён в JDK 1.4 для улучшения производительности, предлагая неблокирующие каналы и буферы, а также поддержку асинхронных операций, что позволяет эффективно работать с большими объёмами данных или многими соединениями одновременно.

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

#core
  • 👏 3
  • 👍 2
  • 🔥 2
Post #1428 629

Forwarded 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
Post #1427 873
Какие объекты стоит использовать для ключей в HashMap?

Ключи должны быть иммутабельными, а также правильно реализовывать методы equals() и hashCode().

🐸 Библиотека собеса по Java
  • ❤ 3
  • 👍 3
  • 🔥 1
Post #1426 979
🔥 Курс «Разработка ИИ-агентов» стартовал, но вы еще успеваете присоединиться!

Мы только начали, а первый практический воркшоп пройдет только 23 июля. До этого времени вы спокойно успеете изучить материалы и нагнать группу.

💼 Главная фишка: финальный проект в портфолио:

В финальном проекте вы сможете выбрать один из двух вариантов: реализовать свою идею или решить задачу от партнера курса — крупной российской финтех-компании. Вы будете работать с датасетом, построенным по реальным сценариям, получите бизнес-контекст и продовые ограничения. В результате соберете AI-агента, который станет сильным проектом для портфолио.


🎁 Упомяните менеджеру специальное предложение «3 курса по цене 1»: Берете VIP-тариф — получаете курс «Разработка ИИ-агентов», хардкорный «AgentOps» и ещё один курс на выбор. Выгода 129.000 ₽!

Двери потока вот-вот закроются окончательно. Успейте забрать стек курсов и начать работу над реальным проектом

🔗 Занять место и забрать 3 курса
  • 🌚 1
Post #1425 851
🔥 Стартуем СЕГОДНЯ! Новый поток курса «Разработка ИИ-агентов» открыт

По этому поводу мы решили выложить закрытую запись одного из уроков из программы. Найти её в поиске YouTube нельзя — она доступна только по ссылке и всем, кто будет на курсе.

Внутри глубокий разбор LLM от Алексея Яндутова (Senior ML-инженер, развивал ответы «Алисы» и «Нейро» в Яндексе). Учимся получать точный результат без галлюцинаций.

Что внутри урока:

- Устройство LLM.
- Рабочие шаблоны промптов (Persona, Chain-of-Thought и др.).
- Разбор реального кейса Яндекса. Как автоматизировать разметку, обойти качество людей на 5% и срезать косты на 60%.


После просмотра вы поймете, когда хватает промпт-инжиниринга, а когда нужен RAG или fine-tuning.

👉Смотреть закрытый урок на YouTube

Понравился урок? Переходите на новый уровень! Оставляйте заявку на курс, чтобы научиться проектировать надежные автономные системы. Обучение началось, но вы еще успеваете присоединиться.

🔗 Занять место на курсе
Post #1424 867
Расскажите о нагрузочном тестировании?

Нагрузочное тестирование — это проверка поведения системы под различными уровнями нагрузки. Цель — понять, как приложение работает при большом количестве одновременных пользователей или запросов.

Основные проверки:

время отклика при росте нагрузки;
максимальное количество пользователей, которое система выдерживает;
точку деградации производительности;
стабильность при длительной работе.

Используем инструменты, например, JMeter, Gatling или K6.

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

#tests
  • 👍 3
  • ❤ 2
  • 🔥 2
Post #1423 888
🚀 Уже завтра стартует новый поток курса «ИИ-агенты»!

Мы собрали мощнейший состав преподавателей. Учить вас проектировать архитектуру и собирать продакшн-агентов будут инженеры и исследователи из топовых IT-компаний.

Старт уже завтра!

Сомневаетесь, подойдет ли вам программа и подача? Начните с бесплатного демо-урока!

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

🔗 Пройти демо-урок и занять место на курсе
Post #1422 899
Что такое propagation у @Transactional?

Propagation — политика того, как метод с аннотацией @Transactional будет взаимодействовать с существующей транзакцией.

Виды:

▪️ REQUIRED (по умолчанию): использует существующую транзакцию или создаёт новую, если её нет

▪️ REQUIRES_NEW: всегда создаёт новую транзакцию, при этом приостанавливая текущую

▪️ SUPPORTS: действует в рамках текущей транзакции, если есть, иначе без транзакции

▪️ MANDATORY: бросает исключение, если нет текущей транзакции

▪️ NEVER: запрещает наличие транзакции, если уже есть, бросает исключение

▪️ NESTED: создаёт «вложенную» транзакцию (savepoint внутри основной)

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

#spring
  • 👍 3
  • ❤ 2
  • 🔥 1
Post #1421 791
💬 Обратная связь

Проверяем динамику роста комьюнити :)
Ваш текущий грейд:

🔥 — Senior
👍🏼 — Middle
❤️ — Junior
😁 — Ещё учусь

🐸 Библиотека собеса по Java
  • 👍 18
  • 🔥 18
  • 😁 18
  • ❤ 3
  • 👾 3
Post #1420 846
🤨 Как заставить AI-агента не ломать архитектуру, а нормально писать код?

Мы привыкли общаться с ИИ промптами, но для автономных систем это путь к бесконечным циклам и сливу бюджета. Чтобы убрать хаос, инженеры переходят на Spec-Driven Development (SDD).

Вот как этот подход меняет работу агента на практике:

🔹Контракт вместо текста. Сначала пишется строгая спецификация (JSON-схема/OpenAPI) и автотесты. Агент зажат в рамки интерфейсов, за которые физически не может выйти.
🔹Контроль на шагах. Внутри петли Think-Act-Observe агент сверяет действия со спецификацией.
🔹Саморефлексия. Если ИИ нарушил типы или «додумал» лишнее, тест падает. Агент получает ошибку в контекст и сам правит код, не выходя за рамки ТЗ.

Это лишь база того, как укротить ИИ-разработку. Если вы хотите глубоко внедрить эту методологию, научиться проектировать архитектурные контракты и собирать отказоустойчивые системы —оставляйте заявку на наш новый курс по Spec-Driven Development. Стартуем совсем скоро🙂
  • 👍 1
Post #1419 2.79K
✔️ 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
  • 🔥 9
  • 👍 3
  • ❤ 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →