class strb
{
static public void main(String...string)
{
StringBuilder s1 = new StringBuilder("Test");
StringBuilder s2 = new StringBuilder("Test");
System.out.println(s1);
System.out.println(s2);
System.out.println(s1==s2);
System.out.println(s1.equals(s2)); //Line 1
System.out.println(s1.toString()==s2.toString()); //Line 2
if(s1.toString()==s2.toString())System.out.println("True"); //Line 3
}
}
И вывод
Test
Test
false
false
Просто быстрый вопрос по .equals.
Независимо от содержимого объекта, .equals
возвращает true, только если обе ссылки на объект указывают на один и тот же объект?
РЕДАКТИРОВАТЬ: Теперь я понимаю часть о .equals
но почему строки 2 и 3 также не возвращают true
?
РЕДАКТИРОВАТЬ: Я считаю, что ==
смотрит на адрес ссылочной переменной, и поэтому s1 и s2 не могут быть равны. Исправьте меня, если мое предположение не верно