The Java Developers Almanac 1.4


Order this book from Amazon.

   
Home > List of Packages > java.lang.ref  [3 examples]

e108. Determining When an Object Will Be Reclaimed

A phantom reference is used to determine when an object is just about to be reclaimed. Phantom references are safer to use than finalization because once an object is phantom reachable, it cannot be resurrected.
    // Create the phantom reference.
    ReferenceQueue rq = new ReferenceQueue();
    PhantomReference pr = new PhantomReference(object, rq);
    
    // Wait until the object is about to be reclaimed.
    try {
        while (true) {
            Reference r = rq.remove();
            if (r == pr) {
                // The object is about to be reclaimed.
                // Clear the referent so that it can be reclaimed.
                r.clear();
            }
        }
    } catch (InterruptedException e) {
    }

 Related Examples
e106. Holding onto an Object Until Memory Becomes Low
e107. Determining When an Object Is No Longer Used


© 2002 Addison-Wesley.