Junior — Middle
Aký je rozdiel medzi použitím metódy equals a operátora == pri porovnávaní objektov v Jave?
sobes.tech AI
Odpoveď od AI
V Jave operátor == porovnáva odkazy na objekty, teda kontroluje, či dve premennej ukazujú na ten istý objekt v pamäti. Metóda equals() je určená na porovnanie obsahu objektov, teda ich logickú rovnosť.
Napríklad pre reťazce:
String a = new String("test");
String b = new String("test");
System.out.println(a == b); // false, rôzne objekty
System.out.println(a.equals(b)); // true, rovnaký obsah
Dôležité: trieda by mala prepísať metódu equals(), aby porovnanie podľa obsahu fungovalo správne. Ak equals() nie je prepísaná, správa sa predvolene ako == (porovnáva odkazy).