Сравнение ссылок

В Java сравнение ссылок происходит с использованием операторов == и !=.

  1. Оператор ==:

    • Оператор == сравнивает две ссылки на объекты и возвращает true, если обе ссылки указывают на один и тот же объект в памяти.

    • Если обе ссылки указывают на один и тот же объект или обе ссылки равны null, то оператор == вернет true.

    • В противном случае, если ссылки указывают на разные объекты, оператор == вернет false.

Пример:

String str1 = new String("hello");
String str2 = str1; // str2 ссылается на тот же объект, что и str1

System.out.println(str1 == str2); // Вывод: true
  1. Оператор !=:

    • Оператор != возвращает true, если две ссылки указывают на разные объекты в памяти.

    • Если обе ссылки указывают на один и тот же объект или обе ссылки равны null, то оператор != вернет false.

    • В противном случае, если ссылки указывают на разные объекты, оператор != вернет true.

Пример:

String str1 = new String("hello");
String str2 = new String("hello");

System.out.println(str1 != str2); // Вывод: true, поскольку str1 и str2 ссылается на разные объекты String
  1. Метод equals():

    • Метод equals() используется для сравнения содержимого объектов, а не их ссылок.

    • Этот метод переопределен в классе Object, и большинство классов в Java переопределяют его для сравнения содержимого объектов.

    • Важно помнить, что по умолчанию метод equals() для класса Object выполняет сравнение ссылок, так же как оператор ==.

Пример:

String str1 = new String("hello");
String str2 = new String("hello");

System.out.println(str1.equals(str2)); // Вывод: true, потому что содержимое объектов String совпадает

Last updated