Sobes.tech
Junior — Middle

Java'da xotira boshqaruvida SoftReference sinfining qo'llanilishi nima?

sobes.tech AI

AIdan javob

Java'da SoftReference sinfi, hafıza qıtlığı zamanı çöp toplayıcının bu obyektleri silmesine izin verən, lakin kifayət qədər yaddaş olduğu müddətdə saxlayan yumşaq istinadlar yaratmaq üçün istifadə olunur.

Bu, keşi həyata keçirmək üçün faydalıdır: yalnız yumşaq istinadlara malik obyektlər tamamilə əlçatmaz sayılmır, lakin lazım olduqda OutOfMemoryError-dən qaçınmaq üçün silinə bilər.

İstifadə nümunəsi:

SoftReference<byte[]> cache = new SoftReference<>(new byte[1024 * 1024]);

byte[] data = cache.get();
if (data == null) {
    // Obyekt çöp toplayıcı tərəfindən silinib, məlumatları yenidən yükləmək lazımdır
    data = new byte[1024 * 1024];
    cache = new SoftReference<>(data);
}

Beləliklə, SoftReference yaddaşın səmərəli idarə olunmasına kömək edir, məlumatları keşdə saxlamağa imkan verir, lakin lazım olduqda çöp toplayıcının yaddaşı sərbəst buraxmasını mane olmur.