Оператор == для сравнения объектов в Java по умолчанию сравнивает ссылки на объекты, а не их содержимое. Он проверяет, указывают ли две переменные на один и тот же экземпляр объекта в памяти.
Для сравнения содержимого объектов следует использовать метод equals(). Метод equals() определен в классе Object, и его можно переопределить в своих классах для реализации специфической логики сравнения содержимого.
Пример использования == и equals():
java
Исключением являются примитивные типы данных (int, boolean, char и т.д.), для которых оператор == сравнивает непосредственно их значения. Для объектов-оберток примитивных типов (Integer, Boolean, Character и т.д.) оператор == также сравнивает ссылки, а не значения, если только не используется автоупаковка/автораспаковка для небольших, кешируемых значений (например, Integer от -128 до 127).