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.