Package java.lang.ref
Class PhantomReference<T>
java.lang.Object
java.lang.ref.Reference<T>
java.lang.ref.PhantomReference<T>
public class PhantomReference<T> extends Reference<T>
Implements a phantom reference, which is the weakest of the three types of
references. Once the garbage collector decides that an object
obj is
phantom-reachable, it is being enqueued
on the corresponding queue, but its referent is not cleared. That is, the
reference queue of the phantom reference must explicitly be processed by some
application code. As a consequence, a phantom reference that is not
registered with any reference queue does not make any sense.
Phantom references are useful for implementing cleanup operations that are
necessary before an object gets garbage-collected. They are sometimes more
flexible than the Object.finalize() method.
-
Field Summary
Fields inherited from class java.lang.ref.Reference
pendingNext -
Constructor Summary
Constructors Constructor Description PhantomReference(T r, ReferenceQueue<? super T> q)Constructs a new phantom reference and registers it with the given reference queue. -
Method Summary
Methods inherited from class java.lang.ref.Reference
clear, enqueue, enqueueInternal, isEnqueued
-
Constructor Details
-
PhantomReference
Constructs a new phantom reference and registers it with the given reference queue. The reference queue may benull, but this case does not make any sense, since the reference will never be enqueued, and theget()method always returnsnull.- Parameters:
r- the referent to trackq- the queue to register the phantom reference object with
-
-
Method Details