Java Guru 🤓
13.1K subscribers
913 photos
15 videos
785 links
Канал с вопросами и задачами с собеседований!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrSQZ

Мы на бирже: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
⚡️ Потоковые приложения с Apache Kafka: от событий к реальному времени

📅 16 декабря | 20:00 мск | бесплатно

🎓 На вебинаре разберём:
– Что такое потоковая обработка и чем она отличается от пакетной
– Как устроена Apache Kafka и почему она стала основой real-time архитектур
– Ключевые паттерны: Event Sourcing, Pub/Sub, CQRS
– Как проектировать и развернуть потоковый конвейер событий
– Как интегрировать Kafka с микросервисами и внешними системами

💡 Кому будет полезно:
Backend-разработчикам, работающим с событийными системами
DevOps-инженерам, отвечающим за масштабирование и мониторинг Kafka
Архитекторам ПО, проектирующим real-time решения
Системным аналитикам, изучающим потоки данных и событийные модели

После вебинара вы сможете:
– Проектировать потоковые приложения и пайплайны в Kafka
– Встраивать Kafka в микросервисную архитектуру
– Использовать проверенные паттерны для построения систем реального времени

💥 Регистрируйтесь и прокачайте навык проектирования real-time систем: https://vk.cc/cS8OL3

Занятие приурочено к старту курса «Архитектура и шаблоны проектирования», где вы освоите DDD, CQRS, Event Storming, Event Sourcing и научитесь создавать архитектуры, готовые к миллионам событий в секунду. 🚀

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
2👍2🔥2
Чем отличается final finally finalize?

Тем, что это даже синтаксически разные вещи. Как и вопрос о методах Object, это способ начать разговор.

finalize – метод-финализатор из Object.

final – модификатор, который применяется к переменным, полям, методам и классам. Переменная или поле становится неизменяемым и требует инициализации. Финальный метод нельзя переопределить в наследниках. Финальный класс не может иметь наследников вообще. Используется для создания хорошего API по принципу наименьших привилегий.

Когда в методе используется локальная переменная внешней области видимости, она обязана быть
effectively final. В этом случае ключевое слово final необязательно, но значение всё равно не должно меняться.

finally – часть языковой конструкции try-catch-finally.

Любое исключение, выброшенное из блока try переводит исполнение в самый соответствующий ему catch (при наличии). Этим продиктована необходимость располагать блоки catch в строгом порядке, от типа исключения-наследника, к родителю. В случае multicatch тот же порядок должен соблюдаться и внутри одного catch.
Больше примеров про порядок.

После выполнится блок finally. Выполняется он в любом случае, было исключение или нет. Типичное использование – освобождение ресурсов, обязательные завершающие действия.

Для требующих финализации классов («ресурсов») добавляется интерфейс AutoCloseable, повторяющийся код блока final выносится в метод close и вызывается неявно в конце
try-with-resources. Если в этой конструкции присутствует и явный final, он будет выполнен после.

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Что будет результатом кода?
👍1
Чем отличаются checked и unchecked исключения?

Вопрос формулируют по-разному, суть вопроса – объяснение иерархии классов исключений. Подробно описано в документации.

Исключения бывают checked и unchecked. Checked требуется указывать в сигнатуре метода в разделе throws; перехватывать или добавлять в throws в вызывающем его методе. Unchecked можно добавить, но не обязательно, перехватывать не обязательно даже если указана в throws.

🔘Throwable – базовый класс для всего что может быть использовано с оператором throw и в конструкции try-catch
🔘RuntimeException – «нормальные» unchecked-исключения
🔘Error – unchecked исключения, которые означают «серьезные проблемы» приложения. Не должны обрабатываться (хотя технически можно). Теоретически JVM может находиться в невалидном состоянии и не давать больше никаких гарантий
🔘Exception (кроме RuntimeException) – checked исключения

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥42
Т-Банк ищет стажеров

Хотите начать карьеру в бигтехе без опыта? В 2024 году это сделали больше тысячи студентов. 75% из них остались в команде и сегодня работают над продуктами, которыми пользуются миллионы.

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

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

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

Подайте заявку на оплачиваемую стажировку уже сейчас
2👍2😁2🔥1
Зачем нужно ключевое слово default?

Изначально (с Java 1.5) это слово использовалось для объявления дефолтного значения элементов аннотации.

В Java 8 вместе с лямбдами и стримами появилась острая необходимость дополнить стандартные интерфейсы новыми методами. Никто естественно не собирался ломать обратную совместимость, и было предложено добавить методы по умолчанию.

Теперь добавление ключевого слова default к методу интерфейса позволяет добавить ему тело. Все новые методы старых интерфейсов снабжаются дефолтной реализацией.

В реализации такого метода его дефолтный вариант вызывается тем же синтаксисом, что и внешний класс из вложенного: InterfaceName.super.methodName().

Методы по умолчанию подошли еще на шаг к введению в Java беспроблемной версии множественного наследования – примесям (mixin). Интерфейс не может иметь состояния, поэтому полноценные примеси всё ещё недоступны.


Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2