garbage collector & cache - oczyszczanie podczas odśmiecania

0

Witam.
Czy istnieje sposób na zrobienie automatycznego oczyszczania cache w momencie odśmiecania pamięci?? Interesowała by mnie metoda podobna do finalize() ale wywoływana podczas każdego odśmiecania albo jakiś inny sposób aby to zrobić.

Konkretniej z klasy pomocniczej cache, chciałbym automatycznie usuwać cachedObject.

public class Cache <T extends Object>{

    T cachedObject;

    public T get(){
        return cachedObject;
    }

    public Cache set(T setobject){
        cachedObject = setobject;
        return this;
    }

}
0

W Cache powinna znajdować się SoftReference do obiektu. W momencie usunięcia właściwego obiektu zniknie on z cache w momencie gdy zacznie brakować pamięci (w przeciwieństwie do WeakReference, która znika wraz z oryginalnym obiektem).
http://download.oracle.com/javase/6/docs/api/java/lang/ref/SoftReference.html
Jeżeli chcesz usuwać od ręki w momencie usuwania oryginalnego obiektu użyj WeakReference:
http://download.oracle.com/javase/6/docs/api/java/lang/ref/WeakReference.html

0

Dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1