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 == nume
” compara as referências dos objetos, resultando em false
, enquanto “nume.equals(comp
)” compara os valores, resultando em true
.