Sobes.tech
Junior — Middle

Java-da obyektləri müqayisə etmək üçün niyə == operatoru əvəzinə equals metodu istifadə etmək tövsiyə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da == operatoru obyektlərin referanslarını müqayisə edir, yəni iki dəyişənin eyni yaddaş obyektinə işarə etdiyini yoxlayır. equals() metodu isə obyektlərin məzmununu, yəni məntiqi bərabərliyini müqayisə etmək üçün nəzərdə tutulmuşdur.

Məsələn, eyni mətnə malik iki fərqli String obyekti üçün, == false qaytaracaq, və equals()true:

String a = new String("test");
String b = new String("test");

System.out.println(a == b);       // false, fərqli obyektlər
System.out.println(a.equals(b));  // true, eyni məzmun

Bu səbəbdən, obyektlərin dəyər bərabərliyini yoxlamaq üçün equals() istifadə etmək tövsiyə olunur, bu, yalnız məzmunu müqayisə edir, referansları yox.