Package Summary  Overview Summary

class:PhantomReference [NONE]


  • public class PhantomReference<T>
    extends Reference<T>
    Phantom reference objects, which are enqueued after the collector determines that their referents may otherwise be reclaimed. Phantom references are most often used to schedule post-mortem cleanup actions.

    Suppose the garbage collector determines at a certain point in time that an object is phantom reachable . At that time it will atomically clear all phantom references to that object and all phantom references to any other phantom-reachable objects from which that object is reachable. At the same time or at some later time it will enqueue those newly-cleared phantom references that are registered with reference queues.

    In order to ensure that a reclaimable object remains so, the referent of a phantom reference may not be retrieved: The get method of a phantom reference always returns null.

    Since:
    1.2

constructor:<init>(T,java.lang.ref.ReferenceQueue) [NONE]

  • PhantomReference

    public PhantomReference​(T referent,
                            ReferenceQueue<? super T> q)
    Creates a new phantom reference that refers to the given object and is registered with the given queue.

    It is possible to create a phantom reference with a null queue, but such a reference is completely useless: Its get method will always return null and, since it does not have a queue, it will never be enqueued.

    Parameters:
    referent - the object the new phantom reference will refer to
    q - the queue with which the reference is to be registered, or null if registration is not required

method:get() [NONE]

  • get

    public T get()
    Returns this reference object's referent. Because the referent of a phantom reference is always inaccessible, this method always returns null.
    Overrides:
    get in class Reference<T>
    Returns:
    null

© 2018 Oracle Corporation and/or its affiliates