Sobes.tech
Junior — Middle

Kuo skiriasi equals metodo naudojimas nuo == operatoriaus naudojimo lyginant objektus Java?

sobes.tech AI

Atsakymas iš AI

Java kalboje operatorius == lygina nuorodas į objektus, tai yra, tikrina, ar dvi kintamosios nurodo į tą patį objektą atmintyje. Metodas equals() skirtas objekto turinio palyginimui, tai yra, jų loginiai lygumai.

Pavyzdžiui, eilutėms:

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

System.out.println(a == b);       // klaidinga, skirtingi objektai
System.out.println(a.equals(b));  // teisinga, tas pats turinys

Svarbu: klasė turi perrašyti equals() metodą, kad turinio palyginimas veiktų teisingai. Jei equals() nėra perrašytas, jis pagal numatytuosius veiksmus elgsis kaip == (lygins nuorodas).