différence entre equals() et hashCode()

Je veux une brève définition de la equals() , "==" et hashCode(). Si je exécutez le code suivant signifie que la sortie sera "vrai faux 2420395 2420395". Mais j'ai dû comprendre que la méthode equals() compare la chaîne et "==" compare la référence. Mais à la sortie de la hashCcode() la méthode imprime le numéro de référence pour les chaînes que même alors, pourquoi le "==" retourne "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());
}
Je vous suggère de lire la définition de hashCode() de nouveau. Il n'y a pas une telle chose comme un numéro de référence.

OriginalL'auteur Dhivakar | 2014-06-27