Sobes.tech
Junior — Middle

Можете ли да обясните за какво служи и как се прилага класът WeakReference в Java?

sobes.tech AI

Отговор от AI

Класът WeakReference в Java се използва за създаване на слаби препратки към обекти. За разлика от силните препратки, слаби препратки не пречат на събирача на отпадъци: ако обект е достъпен само чрез слаби препратки, той може да бъде изтрит от събирача на отпадъци.

Това е полезно, например, за кеширане, когато трябва да се съхраняват обекти, но да не се пречи на тяхното изтриване при недостиг на памет. В Android често се използва WeakReference за съхраняване на препратки към Context или Activity, за да се избегнат течове на памет.

Пример за използване:

WeakReference<MyObject> weakRef = new WeakReference<>(new MyObject());
MyObject obj = weakRef.get();
if (obj != null) {
    // обектът все още е наличен
} else {
    // обектът е изтрит от събирача на отпадъци
}