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
Как сравнивать элементы перечисления?

Элементы 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
79%
Child
4%
Ошибка компиляции
11%
Parent
4%
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
Что будет результатом кода?