Sobes.tech
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.