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.