Sobes.tech
Junior — Middle

Qual é a diferença entre usar o método equals e o operador == ao comparar objetos em Java?

sobes.tech IA

Resposta da IA

No Java, o operador == compara as referências aos objetos, ou seja, verifica se duas variáveis apontam para o mesmo objeto na memória. O método equals() destina-se a comparar o conteúdo dos objetos, ou seja, a sua igualdade lógica.

Por exemplo, para strings:

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

Importante: a classe deve redefinir o método equals() para que a comparação por conteúdo funcione corretamente. Se equals() não for redefinido, ele, por padrão, comporta-se como == (compara referências).