Sobes.tech
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).