Junior — Middle
O que acontece com o resultado do método hashCode se a classe não o sobrescrever explicitamente?
sobes.tech IA
Resposta da IA
Se a classe não substituir explicitamente o método hashCode(), será utilizada a implementação da classe Object. Nesse caso, hashCode retorna um valor inteiro que geralmente é baseado no endereço interno do objeto na memória (ou outro identificador único da JVM).
Isto significa que, para objetos diferentes, mesmo que sejam logicamente iguais, hashCode será diferente, o que pode levar a um funcionamento incorreto das estruturas de hash (por exemplo, HashMap ou HashSet), se hashCode não for sobrescrito juntamente com equals.
Exemplo:
Object obj1 = new Object();
Object obj2 = new Object();
System.out.println(obj1.hashCode()); // número único
System.out.println(obj2.hashCode()); // outro número único