Jak działa metoda equals ()

Wkopuję podstawy Javy. Wnioskuję z tegoartykuł, że java równa się metodzie oznacza, że ​​jeśli dwa obiekty są równe, muszą mieć ten sam kod hashCode ().

Oto mój przykład.

public class Equals {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String a = new String("a"); 
        String b = new String("a");
        System.out.println("a.hashCode() "+a.hashCode());
        System.out.println("b.hashCode() "+b.hashCode());
        System.out.println(a == b); 
        System.out.println(a.equals(b));

    }

}

wydajność:
a.hashCode () 97
b.hashCode () 97
fałszywy
prawdziwe

Rzeczywisty język Java równa się metodzie

  public boolean equals(Object obj) { 
    return (this == obj); 
  }

W moim powyższym przykładzie a.equals (b) zwróciło wartość true, co oznacza, że ​​warunek a == b jest spełniony. Ale dlaczego w takim przykładzie == b powraca fałsz?

Czy hashCode i adres nie są takie same? Ponadto czy hashCode jest porównywany, gdy mówimy a == b lub coś innego?

questionAnswers(7)

yourAnswerToTheQuestion