Junior — Middle
Como distinguir entre a comparação de objetos usando o método equals e o uso do operador == em Java?
sobes.tech IA
Resposta da IA
Em Java, o operador == e o método equals() servem para diferentes propósitos ao comparar objetos:
-
==compara as referências aos objetos, ou seja, verifica se duas variáveis apontam para o mesmo objeto na memória. -
equals()compara o conteúdo dos objetos de acordo com a lógica definida no método sobrescrito da classe.
Exemplo:
String a = new String("test");
String b = new String("test");
System.out.println(a == b); // false, objetos diferentes
System.out.println(a.equals(b)); // true, conteúdo igual
Se a classe não sobrescrever equals(), sua implementação padrão em Object se comporta como ==.
Portanto, para comparar os valores dos objetos (por exemplo, strings, coleções), deve-se sempre usar equals(), e == para verificar a identidade dos objetos.