Библиотека собеса по Java | вопросы с собеседований
6.35K subscribers
396 photos
9 videos
456 links
Вопросы с собеседований по Java и ответы на них.

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Что такое статическое и динамическое связывание?

🔹 Статическое связывание (или раннее связывание) — это связывание метода с его вызовом на этапе компиляции. Используется для:

static методов;
private методов;
final методов;
перегруженных методов (overloading).

Решение принимается на основе типа ссылки.

🔹 Динамическое связывание (или позднее связывание) — это связывание метода с его вызовом во время выполнения программы (runtime). Используется для:

переопределенных методов (overriding);
реализации полиморфизма.

Решение принимается на основе фактического типа объекта.

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

#core
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍32👏1
Какие бывают гарантии доставки сообщений в 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1👏1