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