Junior — Middle
Mi a különbség az equals metódus használata és a == operátor között Java-ban objektumok összehasonlításakor?
sobes.tech MI
Válasz az MI-től
Java-ban az == operátor az objektumokra mutató hivatkozásokat hasonlítja össze, vagyis ellenőrzi, hogy két változó ugyanarra az objektumra mutat-e a memóriában. Az equals() metódus az objektumok tartalmának összehasonlítására szolgál, vagyis logikai egyezőséget vizsgál.
Például, stringek esetén:
String a = new String("test");
String b = new String("test");
System.out.println(a == b); // false, külön objektumok
System.out.println(a.equals(b)); // true, azonos tartalom
Fontos: a osztálynak felül kell írnia az equals() metódust, hogy a tartalom szerinti összehasonlítás helyesen működjön. Ha az equals() nincs felülírva, alapértelmezés szerint úgy viselkedik, mint a == (referenciákat hasonlít össze).