Sobes.tech
Junior — Middle

Miért ajánlott Java-ban az equals metódus használata az == operátor helyett az 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 a logikai egyenlőséget vizsgálja.

Például, két külön String objektum ugyanazzal a szöveggel, az == false értéket ad, míg az equals()true:

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

Ezért az objektumértékek egyenlőségének ellenőrzéséhez ajánlott az equals() használata, hogy a tartalmat hasonlítsuk össze, ne a hivatkozásokat.