Pessoal, Quando eu faço uma comparação de atributos do tipo String eu sempre tenho que utilizar "equals"? Comparar com "==" não funciona?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Pessoal, Quando eu faço uma comparação de atributos do tipo String eu sempre tenho que utilizar "equals"? Comparar com "==" não funciona?
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.