Yumuşak bir referans ve Java zayıf bir referans arasındaki fark nedir?
Başlık oldukça fazla meblağlar.
CEVAP
Understanding Weak References, Ethan Nicholas tarafından: dan
Zayıf başvuruyor
Birzayıf başvurubasitçe söylemek gerekirse, bir. için yeterince güçlü olmadığını başvurusu bir nesne bellekte kalması için zorlamak. Zayıf başvuru kaldıraç izin çöp toplayıcı için yeteneği seni bu yüzden sizin için erişilebilirlik belirlemek, bunu kendiniz yapmak zorunda değilsiniz. Sen böyle zayıf bir başvuru oluşturun
WeakReference weakWidget = new WeakReference(widget);
ve sonra kullanabilirsiniz bu kodu başka bir yerde
weakWidget.get()
gerçek olsunWidget
nesne. Ders zayıf başvuru için yeterince güçlü değil böylece çöp toplama önlemek, bul (eğer varsa yok güçlü widget başvurular)weakWidget.get()
aniden başlarnull
dönüyor....
Yumuşak başvuruyor
Biryumuşak bir referanstam olarak bir gibi. zayıf referans, az olması dışında istekli nesneyi atmak için bunu ifade eder. Bir nesneye zayıf ulaşılabilir (en güçlü tek başvuruları
WeakReferences
) bir sonraki çöp atılacak toplama döngüsü, ama bir nesne usulca erişilebilir olur genellikle. bir süre buralarda.
SoftReferences
değilgerekliiçin herhangi bir farklı davranırWeakReferences
ama pratik usulca içinde erişilebilir nesneler genellikle bellek olarak korudu bereketliydi. Bu onları bir yapar bir önbellek için, böyle mükemmel foundation resim önbelleği yukarıda açıklandığı gibi çöp sağlayabilirsiniz beri toplayıcı hakkında nasıl endişe nesneleri erişilebilir (bir kuvvetle olur erişilebilir nesneaslakaldırılacak ne kadar uzun sürmesi gerektiğini önbellek) ve bellek onlar tüketiyorlar.
Peter Kessler yorum eklendi:
Güneş TOTEM SoftReferences farklı WeakReferences gelen davranıyor. Eğer mevcut bellek üzerinde baskı değil mi, eğer orada bir SoftReference tarafından başvurulan nesne üzerinde tutmak için çalışıyoruz. Bir ayrıntı: ilke "istemci" ve "sunucu" TOTEM bu farklı:- müşteri TOTEM çalışır tutmak ayak izi küçük tarafından tercih açık SoftReferences yerine genişletmek öbek, oysa sunucu TOTEM çalışır tutmak performansınızı yüksek tarafından tercih genişletmek öbek (mümkünse) yerine açık SoftReferences. Bir boyutu tüm uymuyor.
Java: güçlü/yumuşak/zayıf/hayalet refe...
Zayıf bir referans ve sahipsiz bir baş...
Web referans ve hizmet başvuru arasınd...
Bir C arasındaki fark nedir# Referans ...
Bir değişken, nesne ve referans arasın...