Сравнение ссылок
В Java сравнение ссылок происходит с использованием операторов ==
и !=
.
Оператор
==
:Оператор
==
сравнивает две ссылки на объекты и возвращаетtrue
, если обе ссылки указывают на один и тот же объект в памяти.Если обе ссылки указывают на один и тот же объект или обе ссылки равны
null
, то оператор==
вернетtrue
.В противном случае, если ссылки указывают на разные объекты, оператор
==
вернетfalse
.
Пример:
String str1 = new String("hello");
String str2 = str1; // str2 ссылается на тот же объект, что и str1
System.out.println(str1 == str2); // Вывод: true
Оператор
!=
:Оператор
!=
возвращаетtrue
, если две ссылки указывают на разные объекты в памяти.Если обе ссылки указывают на один и тот же объект или обе ссылки равны
null
, то оператор!=
вернетfalse
.В противном случае, если ссылки указывают на разные объекты, оператор
!=
вернетtrue
.
Пример:
String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1 != str2); // Вывод: true, поскольку str1 и str2 ссылается на разные объекты String
Метод
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
Was this helpful?