В чем разница между equals и ==

«В чем разница между equals и ==» — вопрос из категории Java, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

equals() – это метод, который можно переопределить для логического сравнения содержимого объектов. По умолчанию (в классе Object) он ведет себя так же, как ==, но часто переопределяется (например, в 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 (одинаковое содержимое)

Для примитивов (int, char и др.) == сравнивает значения.