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