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.