Java Guru 🤓
13.3K subscribers
900 photos
16 videos
759 links
Канал с вопросами и задачами с собеседований!

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

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

Мы на бирже: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
Что будет результатом кода?
👍5🔥4
👩‍💻 Открытый урок «Лучшие практики Kafka и Schema Registry в backend-разработке на Java».

Kafka уже стала стандартом для высоконагруженных систем, а Schema Registry — ключом к надёжной работе с данными.
Хотите уверенно интегрировать их в свои Java-проекты?

Приглашаем на открытый урок

🗓 26 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional».

🎯 О чём поговорим:
✔️ Разработка Kafka-продюсеров и консьюмеров на Java: шаблоны и анти-паттерны.
✔️ Работа со схемами данных: Avro, JSON-schema и интеграция со Schema Registry.
✔️ Управление версиями схем: совместимость, миграции и депрецирование.
✔️ Производительность и отказоустойчивость: настройки партиционирования, ретеншна и репликации.
✔️ Безопасность и мониторинг: аутентификация, авторизация и метрики Kafka.

👥 Кому будет интересно:
Java-разработчикам и архитектам, работающим с распределёнными системами, а также DevOps-инженерам, внедряющим Kafka в продакшен.

💡В результате урока вы:
— Освоите ключевые подходы к созданию надёжных Kafka-приложений на Java.
— Научитесь эффективно управлять схемами данных в Schema Registry и оптимизировать производительность ваших систем.

🎁 Дарим промокод, который дает скидку на обучение - JAVA_09

🔗 Ссылка на регистрацию: https://vk.cc/cOKq0Q

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🔥2
Что будет результатом фрагмента кода?
👍2🔥1
REST или GraphQL? Этот выбор может определить, насколько удобным, быстрым и масштабируемым будет ваш API.

26 августа в 20:00 на открытом уроке мы разберём, когда стоит выбрать REST, а когда — GraphQL, а также реализуем оба подхода в Spring Boot. Эксперт покажет критерии выбора, разберёт практические кейсы и типичные ошибки.

Backend-разработчики на Java/Kotlin и тимлиды узнают, как применять эти технологии на практике, чтобы их проекты работали быстрее, были проще в сопровождении и готовыми к росту.

Вебинар проходит в преддверие старта курса «Разработчик на Spring Framework».

Регистрируйтесь сейчас и получите скидку на обучение: https://vk.cc/cON5w2

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
2👍2🔥2
Может ли имя класса не совпадать с именем файла?

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

Protected и private классов верхнего уровня не бывает в принципе, а вот на package-protected это ограничение не распространяется. Это значит, что класс без модификатора доступа может иметь любое имя. Также это значит, что рядом с основным публичным классом файла (или вместо него) можно объявить любое количество других классов без модификатора доступа, с произвольными именами. Они будут доступны внутри всего пакета.

Так что ответ – может.


Java Guru🤓 #java
👍9🔥51
Как сравнивать элементы перечисления?

Элементы enum-а компилируются в статические константы-экземпляры его класса. Экземпляры гарантированно синглтоны. Это значит, для их сравнения безопасно использовать ==, даже после десериализации и в многопоточной среде.

Скомпилированный класс неявно наследуется от java.lang.Enum, в котором все методы из Object кроме toString объявлены финальными. В частности, невозможно изменить поведение метода equals – он сравнивает enum-ы с помощью ==. Так что equals тоже можно использовать без опаски.

Но помимо этого есть несколько отличий в пользу ==:

1. == не выбросит NullPointerException. Прежде чем вызывать equals у переменной, придется удостовериться что она не null.

2. == не позволит сравнить объекты разных типов. Оператор еще на этапе компиляции подскажет, что такое сравнение не имеет смысла. equals же будет принимать аргумент под типом Object, и всегда возвращать false уже в рантайме.

3. == быстрее. Скорее всего разница в производительности будет незаметной, но тем не менее, оператор не требует лишнего вызова метода.


Java Guru🤓 #java
👍7🔥6
🤖 AI заменит разработчиков?
Этот вопрос звучит как кликбейт. Но когда смотришь на то, что делает Explyt Agent, начинаешь думать иначе.

Этот AI не просто подсказывает код, а реально:
• редактирует файлы в проекте
• запускает тесты и отлавливает ошибки
• выполняет команды в терминале
• анализирует проект и добавляет недостающие файлы

Фактически, он ведет себя как джун, которому ты говоришь: «вот таска, сделай». А ты только проверяешь результат.

Попробуйте, как устроен этот агент и что он умеет🚀
🥴6👍3🔥3
Что будет выведено на экран?
👍5🔥5
Что будет выведено на экран?
Anonymous Quiz
2%
RuntimeException
80%
Child
4%
Ошибка компиляции
11%
Parent
3%
Parent Child
👍4🔥4
🔗 Секреты межсервисных запросов: как сделать приложение быстрым и надёжным
📅 25 августа | 20:00 мск | бесплатно

На вебинаре разберём:
• Почему “просто вызвать другой сервис” не работает
• Как избежать каскадных задержек и повысить отказоустойчивость
• API Gateway, агрегаторы, GraphQL — когда стоит применять
• CQRS: разделение команд и запросов для масштабирования и оптимизации

💡Полезно для:
• Разработчиков и архитекторов ПО
• DevOps-инженеров
• Техлидов

После вебинара вы сможете:
• Проектировать устойчивые и быстрые межсервисные запросы
• Централизовать и агрегировать API без превращения в монолит
• Применять CQRS для оптимизации работы системы

👉 Регистрируйтесь:

https://vk.cc/cOPlJu

Занятие приурочено к старту курса "Software Architect", обучение на котором позволит освоить компетенции архитектора по моделированию и построению отказоустойчивых, масштабируемых информационных систем.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍2🔥21
Что будет результатом инжекта бина А?
🔥4👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
Какие бывают проблемы с арифметикой в Java?

Переполнения.
Числа примитивных типов в Java хранятся в дискретной оперативной памяти компьютера и занимают фиксированный объем. Из этого вытекает ограничение диапазона возможных значений. Когда результат арифметической операции выпадает из диапазона, значение идет по кругу – максимальное становится минимальным, либо наоборот. Такая ситуация называется переполнение (underflow/overflow).

Решение: если опасность переполнения значима, помогут методы с суффиксом *Exact из классе Math. Это безопасные аналоги арифметических операций, которые бросают исключение в случае переполнения.

Платформо-зависимые округления.
По умолчанию JVM производит арифметические вычисления насколько это возможно точно. Пределы точности могут зависеть от аппаратного обеспечения. Это неприемлемо для программ, к которым предъявляют строгие требования переносимости, когда результат вычислений должен быть одним и тем же на любом железе.

Решение: модификатор strictfp в объявлении класса или метода приводит точность вычислений к единой спецификации IEEE 754. За это может ухудшиться производительность и уменьшиться точность значений.

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

Решение: неожиданное исключение обычно указывает на логическую ошибку. Лучший способ предотвратить логические ошибки – покрыть код Unit-тестами.


Java Guru🤓 #java
🔥9👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
Что будет результатом кода?
🔥1