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?