Sobes.tech
Junior — Middle

Fərqli referans tipləri nədir və yaddaş idarəsində necə işləyirlər?

sobes.tech Süni İntellekt

AI-dan cavab

Android-da (və ümumilikdə Java/Kotlin-də) yaddaş idarəsində, çöp toplayıcıya təsir edən müxtəlif növ istinadlar mövcuddur:

  • Güclü İstinad (Strong Reference): obyektə adi istinad. Əgər ən azı bir güclü istinad mövcuddursa, obyekt çöp toplayıcı tərəfindən silinməz.

  • Yumşaq İstinad (Soft Reference): keşik üçün istifadə olunur. Yumşaq istinada olan obyekt yalnız yaddaş çatışmazlığı zamanı silinəcək.

  • Zəif İstinad (Weak Reference): bu cür istinada olan obyekt növbəti çöp toplayıcı dövründə silinə bilər, hətta zəif istinadlar olsa belə. Objekti silməyə mane olmamalı olan istinadlar üçün istifadə olunur.

  • Fantom İstinad (Phantom Reference): obyektin silinməyə hazır olduğu anı izləmək üçün istifadə olunur, lakin hələ silinməyib. Objekti silindikdən sonra əlavə tədbirlər görməyə imkan verir.

Kotlin-də zəif istinad nümunəsi:

val strongRef = SomeObject()
val weakRef = WeakReference(strongRef)

// Əgər strongRef null olarsa, obyekt çöp toplayıcı tərəfindən silinə bilər və weakRef.get() null qaytaracaq

Fərqli istinad növlərinin istifadəsi obyektlərin həyat dövrünü idarə etməyə və yaddaş istifadəsini optimallaşdırmağa kömək edir.