У меня есть следующие строки из кода Java
{
String str1=new String("Vivek");
String str2=new String("Vivek");
StringBuffer str3=new StringBuffer("Vivek");
StringBuffer str4=new StringBuffer("Vivek");
System.out.println(str1.equals(str2));
System.out.println(str3.equals(str4));
}
Теперь я получаю вывод следующим образом
True
False
Я не могу понять, почему он печатает true для объекта String и false для объектов StringBuffer? Имеет ли это какое-то отношение к изменчивости объектов?
StringBuffer str3=new StringBuffer("Vivek");
? - person Alexis C.   schedule 08.05.2014StringBuffer
просто не переопределяет равенство. Поскольку вы создаете два совершенно новых экземпляра, он возвращает false. - person Alexis C.   schedule 08.05.2014StringBuffer
не переопределяет методequals
изObject
. - person Omoro   schedule 08.05.2014str3.equals(str4)
эквивалентноobject.equals(object)
- person Braj   schedule 08.05.2014