Todo programador Java competente sabe que você precisa usar String.equals () para comparar uma sequência, em vez de == porque == verifica a igualdade de referência.
Quando estou lidando com seqüências de caracteres, na maioria das vezes estou verificando a igualdade de valor em vez de referenciar a igualdade. Parece-me que seria mais intuitivo se o idioma permitisse a comparação dos valores de string usando apenas ==.
Como comparação, o operador de C # == verifica a igualdade de valor da string s. E se você realmente precisou verificar a igualdade de referência, pode usar String.ReferenceEquals.
Outro ponto importante é que as Strings são imutáveis, portanto, não há danos a serem causados ao permitir esse recurso.
Existe alguma razão específica para isso não ser implementado em Java?
==
operador mapeia apenas Equals
se o ==
operador foi implementado dessa maneira. O comportamento padrão para ==
é o mesmo que ReferenceEquals
(na verdade, ReferenceEquals
é definida como a versão de objeto de ==
)
==
é a igualdade de objetos eeq
é a igualdade de referência ( ofps.oreilly.com/titles/9780596155957/… ).