Төрдүү шилтемелердин түрлөрү эмнелерден айырмаланат жана алар эс тутумду башкарууда кандай иштешет?
sobes.tech AI
AIден жооп
Androidда (жана жалпы Java/Kotlinда) эс тутумду башкарууда, garbage collection'ке таасир этүүчү ар кандай шилтемелер бар:
-
Күчтүү шилтеме (Strong Reference): обьекске карата жөнөкөй шилтеме. Эгер кеминде бир күчтүү шилтеме болсо, обьект garbage collector тарабынан өчүрүлбөйт.
-
Жумшак шилтеме (Soft Reference): кэш үчүн колдонулат. Жумшак шилтемеге ээ обьект гана эс тутум жетишпегенде өчүрүлөт.
-
Слаб шилтеме (Weak Reference): мындай шилтемеге ээ обьект кийинки garbage collection циклинде өчүрүлүшү мүмкүн, ал тургай слаб шилтемелер болсо да. Обьектти өчүрүүгө тоскоол болбошу керек болгон шилтемелер үчүн колдонулат.
-
Фантом шилтеме (Phantom Reference): обьект өчүрүлүүгө даяр болгондо, бирок дагы эле өчүрүлбөгөндө, анын убактысын көзөмөлдөө үчүн колдонулат. Обьект өчүрүлгөндөн кийин кошумча аракеттерди жүргүзүүгө мүмкүндүк берет.
Кotlinдеги слаб шилтеменин мисалы:
val strongRef = SomeObject()
val weakRef = WeakReference(strongRef)
// Эгер strongRef null болсо, обьект garbage collector тарабынан өчүрүлүшү мүмкүн, жана weakRef.get() null кайтарат
Түрдүү шилтемелердин түрлөрүн колдонуу обьекттердин жашоо циклин башкарууга жана эс тутумдун колдонушун оптималдаштырууга жардам берет.