Связывание класса с тем же типом

String a = new String("foo");
String b = new String("foo");
System.out.println(a == b); // prints false
System.out.println(a.equals(b)); // prints true

Убедитесь, что вы понимаете, почему. Это потому, что сравнение == сравнивает только ссылки; equals() метод сопоставляет содержимое по символу.

Когда вы вызываете new для a и b, каждый получает новую ссылку, указывающую на "foo" в таблице строк. Ссылки разные, но контент один и тот же.

0
задан Sudhir Ojha 17 January 2019 в 10:07
поделиться

1 ответ

В Java абсолютно нормально иметь объект, содержащий ссылки на объекты того же класса. Вы даже можете иметь ссылку на класс.

Это полезно для построения деревьев и списков объектов.

0
ответ дан rustyx 17 January 2019 в 10:07
поделиться
Другие вопросы по тегам:

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