Встречается на собеседованиях • сегодня
Как Spring различает два эквивалентных объекта
Spring различает эквивалентные объекты (по equals()) через их идентичность (==) и хеш-коды. В контексте Spring-бинов:
- По умолчанию каждый бин - синглтон, и Spring возвращает один и тот же экземпляр
- Для prototype-бинов создаются разные экземпляры, даже если они equals()
Пример:
java
@Component
@Scope("prototype")
class MyBean {}
// В разных вызовах getBean() будут разные объекты
MyBean b1 = context.getBean(MyBean.class);
MyBean b2 = context.getBean(MyBean.class);
// b1.equals(b2) может быть true, но b1 != b2Для не-бинов различие зависит от реализации equals()/hashCode(). Если они переопределены, то:
- HashSet/HashMap будут считать объекты одинаковыми
- Но при == они разные
Лучшая практика: всегда переопределять equals() и hashCode() согласованно для объектов, которые могут сравниваться.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы