diferença entre equals () e hashCode ()
Eu quero uma breve definição sobre o equals (), "==" e hashCode (). Se eu executar o código a seguir, a saída será "true false 2420395 2420395". Mas eu entendi que o método equals () compara a string e "==" compara a referência. Mas, na saída, o método hashCcode () imprime o número de referência para ambas as seqüências da mesma forma, porque o "==" retorna "false".
String str = "Name";
String str1 = new String("Name");
if(str.equals(str1))
System.out.println("true");
else
System.out.println("false");
if(str==str1)
System.out.println("true");
else
System.out.println("false");
System.out.println(str.hashCode());
System.out.println(str1.hashCode());
}