1
resposta

Dúvida no Ex 10 java.lang (Java e suas Bibliotecas) - equals

Pessoal, Quando eu faço uma comparação de atributos do tipo String eu sempre tenho que utilizar "equals"? Comparar com "==" não funciona?

1 resposta

Oi, Mario.

Em alguns casos, funciona. Mas nem sempre.

O recomendado é sempre usar o equals quando comparar referências. Variáveis do tipo String são referências. São objetos. Logo, use o equals.

O código abaixo ilustra bem isso:

String s1 = "Clark";
String s2 = "Clark";

System.out.println(s1 == s2); // true
System.out.println(s1.equals(s2)); // true

String s3 = new String("Clark");

System.out.println(s1 == s3); // false
System.out.println(s1.equals(s3)); // true

Praticamente não usamos o new String, mas isso não impede que outros códigos e o framework usem por algum motivo exclusivo. Logo, para garantir, sempre use equals.