Sobes.tech
Junior — Middle

Ինչպե՞ս որոշել, որ երկու օբյեկտներ հղում են անում նույն օրինակին հիշողության մեջ։

sobes.tech AI

Պատասխան AI-ից

Android (Java/Kotlin) միջավայրում, երկու օբյեկտների հիշողության մեջ նույն օրինակին հղում է ստուգելու համար, օգտագործվում է == օպերատորը (Kotlin-ում) կամ == օպերատորը Java-ում հղման ստուգման համար (Java-ում == օգտագործվում է հղման ստուգման համար, իսկ equals() մեթոդը՝ բովանդակության համեմատության համար):

Kotlin-ում օրինակ:

val obj1 = SomeClass()
val obj2 = obj1
val obj3 = SomeClass()

println(obj1 == obj2) // ճշմարիտ, քանի որ հղումները նույնն են
println(obj1 == obj3) // սխալ, տարբեր օրինակներ

Java-ում:

SomeClass obj1 = new SomeClass();
SomeClass obj2 = obj1;
SomeClass obj3 = new SomeClass();

System.out.println(obj1 == obj2); // ճշմարիտ
System.out.println(obj1 == obj3); // սխալ

Այսպիսով, == օպերատորը համեմատում է հղումները, իսկ equals() մեթոդը՝ օբյեկտների բովանդակությունը։