String # равно принимает Object в качестве аргумента и проверяет, является ли он экземпляром объекта String или нет.Если аргументом является объект String, он сравнивает содержимое символ за символом.Он возвращает true, если содержимое обоих строковых объектов одинаково.
String # contentEquals принимает в качестве аргумента интерфейс CharSequence.CharSequence может быть реализован двумя способами - используя i) класс String или (ii) AbstractStringBuilder (родительский класс StringBuffer, StringBuilder)
In Длина contentEquals () сравнивается перед любым экземпляром объектапроверять.Если длина одинакова, то проверяется, является ли объект аргумента экземпляром AbstractStringBuilder или нет.Если это так (т.е. StringBuffer или StringBuilder), то содержимое проверяется посимвольно.Если аргумент является экземпляром объекта String, то String # equals вызывается из String # contentEquals.
Короче говоря,
String # равно сравнивает содержимое символ за символомв случае, если аргумент также является объектом String.И String # contentEquals сравнивает содержимое в случае, если объект-аргумент реализует интерфейс CharSequence.
String # contentEquals медленнее, если мы сравниваем два строковых содержимого одинаковой длины, так как String # contentEquals внутренне вызывает String #, равнодля строкового объекта.
Если мы попытаемся сравнить объекты с разной длиной содержимого (скажем, «abc» с «abcd»), то String # contentEquals будет быстрее, чем String # равно.Потому что длина сравнивается перед проверкой экземпляра объекта.