Sobes.tech
Junior — Middle

Čím se liší použití metody equals od operátoru == při porovnávání objektů v Javě?

sobes.tech AI

Odpověď od AI

V jazyce Java operátor == porovnává odkazy na objekty, tedy kontroluje, zda dvě proměnné odkazují na stejný objekt v paměti. Metoda equals() je určena k porovnání obsahu objektů, tedy jejich logické rovnosti.

Například u řetězců:

String a = new String("test");
String b = new String("test");

System.out.println(a == b);       // false, různé objekty
System.out.println(a.equals(b));  // true, stejný obsah

Důležité: třída by měla přepsat metodu equals(), aby porovnání podle obsahu fungovalo správně. Pokud equals() není přepsáno, chová se ve výchozím nastavení jako == (porovnává odkazy).