Sobes.tech
Back to questions
Junior — Middle
72

Чем отличается метод equals от оператора == в Java?

Answer from AI

sobes.tech AI

В Java оператор == и метод equals() служат для сравнения, но работают по-разному:

  • == сравнивает ссылки на объекты, то есть проверяет, указывают ли две переменные на один и тот же объект в памяти.
  • equals() сравнивает содержимое объектов, то есть логику равенства, определённую в классе. По умолчанию (в классе Object) equals() ведёт себя как ==, но многие классы (например, String, Integer) переопределяют этот метод для сравнения значений.

Пример:

String a = new String("test");
String b = new String("test");

System.out.println(a == b);       // false, разные объекты
System.out.println(a.equals(b));  // true, одинаковое содержимое

Таким образом, для сравнения значений объектов всегда стоит использовать equals(), а == — для проверки идентичности объектов.