Entendendo a Diferença entre “==” e “equals()” em Java

Comparar Strings em Java pode ser confuso para iniciantes, mas entender as diferenças entre == e equals() é essencial para evitar bugs e garantir que seu código funcione corretamente.

Comparando Strings com ==

O operador == é usado para comparar referências de objetos em Java. Quando usamos == para comparar Strings, estamos verificando se ambos os objetos apontam para a mesma localização na memória.

Neste exemplo, s1 e s2 referem-se ao mesmo objeto de String na pool de strings, portanto, s1 == s2 retorna true.

Por outro lado, se criarmos novas instâncias de String:

Embora s3 e s4 contenham o mesmo valor, s3 == s4 retorna false porque s3 e s4 são referências a diferentes objetos na memória.

Comparando Strings com equals()

O método equals() é usado para comparar os conteúdos de dois objetos String. Ele verifica se os valores dos caracteres dentro das Strings são iguais.

Aqui, s1.equals(s2) retorna true porque o método equals() compara os valores de s1 e s2, que são iguais.

Exemplo Prático

Em meu código, demonstro como essas duas formas de comparação funcionam (considere que o usuário digitou o valor 2):

Neste exemplo, comp == numecompara as referências dos objetos, resultando em false, enquanto nume.equals(comp)” compara os valores, resultando em true.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *