equals, предполагается сравнить, что содержимое двух объектов эквивалентно, независимо от их идентичности (то есть экземпляра объекта, который сравнивается с ==).
Переменная не является объектом, это контейнер типа данных/объекта. Если переменная истинна null, вы не можете сравнить ее как равенство, потому что нет объекта для сравнения.
Оператор ==сравнивает ссылку на объект. и .equals()он проверяет, равны ли два объекта, но, даже если объекты равны нулю , при сравнении будет возвращаться NullPointerException.
Причина в том, что вы хотите сравнить ссылку и для этой цели лучше использовать оператор==
Метод equals сравнивает равенство valorдвух объектов. отправленный параметр должен быть ссылкой, Objetoа не ссылкой, иначе будет выброшено исключение NullPointerException
Когда вы сравниваете два объекта с (==), вы сравниваете, указывают ли две ссылки на один и тот же адрес памяти, где находится объект.
Пример:
Человек person1 = новый Человек(); Человек person2 = новый Человек();
если вы сравните
человек1 == человек2 -> результат будет ложным.
но если вы сделаете это:
person2 = person1 -> вы указываете, что person2 ссылается на объект, на который ссылается person1.
тогда при сравнении
человек1 == человек2 -> вернет true.
Случай 2 равен.
Метод equals объявлен в основном классе Object, он указывает, равны ли два объекта (если они имеют одинаковое содержимое), все классы в java наследуются от объекта явно или неявно.
В случае с классом java.lang.String, если мы проверим документацию, он переопределяет метод equals.
Пример:
Строка name1 = "Джоэл"; Имя строки2 = "Джоэл";
name1.equals(name2) -> Результат будет истинным, поскольку они имеют одинаковое содержимое.
Если вы хотите сравнить свои собственные созданные объекты, используя equals, вам нужно переопределить метод equals и реализовать его.
В документации Java сказано, как должен быть реализован метод equals в соответствии с его контрактом.
equals
, предполагается сравнить, что содержимое двух объектов эквивалентно, независимо от их идентичности (то есть экземпляра объекта, который сравнивается с==
).Переменная не является объектом, это контейнер типа данных/объекта. Если переменная истинна
null
, вы не можете сравнить ее как равенство, потому что нет объекта для сравнения.Оператор
==
сравнивает ссылку на объект. и.equals()
он проверяет, равны ли два объекта, но, даже если объекты равны нулю , при сравнении будет возвращатьсяNullPointerException
.Причина в том, что вы хотите сравнить ссылку и для этой цели лучше использовать оператор
==
Метод equals сравнивает равенство
valor
двух объектов. отправленный параметр должен быть ссылкой,Objeto
а не ссылкой, иначе будет выброшено исключение NullPointerExceptionНачиная с Java
7.0
, мы добавили метод equals (Object a, Object b) класса Objects , чтобы проверить это .Мое мнение:
Когда вы сравниваете два объекта с (==), вы сравниваете, указывают ли две ссылки на один и тот же адрес памяти, где находится объект.
Пример:
Человек person1 = новый Человек(); Человек person2 = новый Человек();
если вы сравните
человек1 == человек2 -> результат будет ложным.
но если вы сделаете это:
person2 = person1 -> вы указываете, что person2 ссылается на объект, на который ссылается person1.
тогда при сравнении
человек1 == человек2 -> вернет true.
Случай 2 равен.
Метод equals объявлен в основном классе Object, он указывает, равны ли два объекта (если они имеют одинаковое содержимое), все классы в java наследуются от объекта явно или неявно.
В случае с классом java.lang.String, если мы проверим документацию, он переопределяет метод equals.
Пример:
Строка name1 = "Джоэл"; Имя строки2 = "Джоэл";
name1.equals(name2) -> Результат будет истинным, поскольку они имеют одинаковое содержимое.
Если вы хотите сравнить свои собственные созданные объекты, используя equals, вам нужно переопределить метод equals и реализовать его.
В документации Java сказано, как должен быть реализован метод equals в соответствии с его контрактом.
https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)
Надеюсь, я помог.
Оператор == выполняет сравнение на уровне объекта. То есть он определяет, равны ли оба объекта.
Метод equals() сравнивает символы в объекте String.