Junior — Middle
Czym różni się użycie metody equals od operatora == przy porównywaniu obiektów w Java?
sobes.tech AI
Odpowiedź od AI
W Javie operator == porównuje odwołania do obiektów, czyli sprawdza, czy dwie zmienne wskazują na ten sam obiekt w pamięci. Metoda equals() służy do porównywania zawartości obiektów, czyli ich logicznej równości.
Na przykład dla łańcuchów:
String a = new String("test");
String b = new String("test");
System.out.println(a == b); // false, różne obiekty
System.out.println(a.equals(b)); // true, ta sama zawartość
Ważne: klasa powinna nadpisać metodę equals(), aby porównanie zawartości działało poprawnie. Jeśli equals() nie jest nadpisane, domyślnie zachowuje się jak == (porównuje odwołania).