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).