Каково различие между “.equals” и “==”? [дубликат]

Мне лично нравится Visual Studio, объединенная со сторонним дополнением такой, поскольку Визуальный Помогают ( http://www.wholetomato.com/ ). Я попробовал несколько из других и всегда заканчивал назад с Visual Studio. Плюс, Visual Studio является широко используемым продуктом в отраслях промышленности разработки, таким образом имение опыта с помощью нее может только быть плюс.

65
задан Peter O. 26 November 2015 в 06:26
поделиться

3 ответа

В Java, == всегда просто сравнивает две ссылки (то есть для не примитивов), т. Е. Проверяет, ссылаются ли два операнда на один и тот же объект.

Однако метод равно может быть переопределен, поэтому два различных объекта могут быть равными.

Например:

String x = "hello";
String y = new String(new char[] { 'h', 'e', 'l', 'l', 'o' });

System.out.println(x == y); // false
System.out.println(x.equals(y)); // true

Кроме того, стоит помнить, что любые две равные строковые константы (в основном строковые литералы, но также и комбинации строковых констант посредством конкатенации) в конечном итоге будут ссылаться на одну и ту же строку. Например:

String x = "hello";
String y = "he" + "llo";
System.out.println(x == y); // true!

Здесь x и y - это ссылки на одну и ту же строку, потому что y - это константа времени компиляции, равная "привет ".

111
ответ дан 24 November 2019 в 15:22
поделиться

Если мы с вами зайдем в банк, каждый откроет новый счет и внесет 100 долларов, тогда ...

  1. myAccount.equals (yourAccount) будет true , потому что они имеют одинаковое значение , но
  2. myAccount == yourAccount имеет значение false , потому что это не тот же аккаунт ].

(Конечно, при соответствующих определениях класса Account ; -)

14
ответ дан 24 November 2019 в 15:22
поделиться

Оператор == сравнивает, являются ли объекты одним и тем же экземпляром . Оератор equals () сравнивает состояние объектов (например, если все атрибуты равны). Вы даже можете переопределить метод equals (), чтобы определить себя, когда объект равен другому.

19
ответ дан 24 November 2019 в 15:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: