Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpObRC 24 of 147 menu
◀ ▶

Сравнение ссылок через == в Java

Оператор == для ссылочных типов проверяет, указывают ли две переменные на один и тот же объект в памяти. Разные экземпляры класса даже с одинаковыми полями при == не равны:

class Post { public String title = ""; public String text = ""; }

Создадим две одинаковые записи и сравним ссылки оператором ==:

Post a = new Post(); a.title = "News"; a.text = "Hello"; Post b = new Post(); b.title = "News"; b.text = "Hello"; Post c = a; System.out.println(a == b); System.out.println(a == c);

Если второй переменной присвоить первую, обе ссылаются на один объект - сравнение даст true:

Post original = new Post(); original.title = "News"; Post alias = original; System.out.println(original == alias);

Сравнение полей «по смыслу» делают вручную - проверяют каждое свойство отдельно:

Post a = new Post(); a.title = "News"; a.text = "Hello"; Post b = new Post(); b.title = "News"; b.text = "Hello"; boolean sameData = a.title.equals(b.title) && a.text.equals(b.text); System.out.println(sameData); System.out.println(a == b);

Создайте два разных объекта Employee с одинаковым заголовком. Выведите результат == для этих переменных.

Создайте объект Employee и вторую переменную, которой присвоите тот же объект. Выведите результат ==.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить