Метод equals
из StringBuffer
не переопределяется из Object
, поэтому это просто ссылочное равенство, то есть то же, что и с использованием ==
. Я подозреваю, что причина этого в том, что StringBuffer
является изменяемым, а переопределение equals
в основном полезно для классов, подобных значению, которые вы можете использовать в качестве ключей (хотя в списках также есть переопределенные equals
и StringBuffer
вид списка, так что это немного непоследовательно).