Почему Java сравнивает (эта == другая строка) внутри метода equalsIgnoreCase для проверки строковой нечувствительности?Почему существует «==» внутри String.equals?
Кроме того, String equals сравнивает (this == another String), чтобы сравнить два объекта?
Java 6: Класс String EqualsIgnoreCase, приведенный ниже.
public boolean equalsIgnoreCase(String anotherString) {
return (this == anotherString) ? true :
(anotherString != null) && (anotherString.count == count) &&
regionMatches(true, 0, anotherString, 0, count);
}
Java 6: Класс String приведен ниже.
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
Я бы себе представить, потому что прямое сравнение объекта очень быстро, так что это быстро чтобы проверить, сравнивается ли String с самим собой. –
Обратите внимание, что фактическая реализация 'String.equals' является встроенной и предоставляется Java-реализация - это только код ссылки (для интерпретатора, инструментов анализа кода и т. Д.), –