Known Direct Subclasses
PhantomReference<T> |
Phantom reference objects, which are enqueued after the collector
determines that their referents may otherwise be reclaimed. |
SoftReference<T> |
Soft reference objects, which are cleared at the discretion of the garbage
collector in response to memory demand. |
WeakReference<T> |
Weak reference objects, which do not prevent their referents from being
made finalizable, finalized, and then reclaimed. |
|
Known Indirect Subclasses
Cleaner |
General-purpose phantom-reference-based cleaners. |
|
Class Overview
Abstract base class for reference objects. This class defines the
operations common to all reference objects. Because reference objects are
implemented in close cooperation with the garbage collector, this class may
not be subclassed directly.
Summary
Public Methods |
void
|
clear()
Clears this reference object.
|
boolean
|
enqueue()
Adds this reference object to the queue with which it is registered,
if any.
|
T
|
get()
Returns this reference object's referent.
|
boolean
|
isEnqueued()
Tells whether or not this reference object has been enqueued, either by
the program or by the garbage collector.
|
[Expand]
Inherited Methods |
From class
java.lang.Object
Object
|
clone()
Creates and returns a copy of this object.
|
boolean
|
equals(Object obj)
Indicates whether some other object is "equal to" this one.
|
void
|
finalize()
Called by the garbage collector on an object when garbage collection
determines that there are no more references to the object.
|
final
Class<?>
|
getClass()
Returns the runtime class of this Object .
|
int
|
hashCode()
Returns a hash code value for the object.
|
final
void
|
notify()
Wakes up a single thread that is waiting on this object's
monitor.
|
final
void
|
notifyAll()
Wakes up all threads that are waiting on this object's monitor.
|
String
|
toString()
Returns a string representation of the object.
|
final
void
|
wait()
Causes the current thread to wait until another thread invokes the
notify() method or the
notifyAll() method for this object.
|
final
void
|
wait(long timeout, int nanos)
Causes the current thread to wait until another thread invokes the
notify() method or the
notifyAll() method for this object, or
some other thread interrupts the current thread, or a certain
amount of real time has elapsed.
|
final
void
|
wait(long timeout)
Causes the current thread to wait until either another thread invokes the
notify() method or the
notifyAll() method for this object, or a
specified amount of time has elapsed.
|
|
Public Methods
public
void
clear
()
Clears this reference object. Invoking this method will not cause this
object to be enqueued.
This method is invoked only by Java code; when the garbage collector
clears references it does so directly, without invoking this method.
public
boolean
enqueue
()
Adds this reference object to the queue with which it is registered,
if any.
This method is invoked only by Java code; when the garbage collector
enqueues references it does so directly, without invoking this method.
Returns
true
if this reference object was successfully
enqueued; false
if it was already enqueued or if
it was not registered with a queue when it was created
public
T
get
()
Returns this reference object's referent. If this reference object has
been cleared, either by the program or by the garbage collector, then
this method returns null
.
Returns
- The object to which this reference refers, or
null
if this reference object has been cleared
public
boolean
isEnqueued
()
Tells whether or not this reference object has been enqueued, either by
the program or by the garbage collector. If this reference object was
not registered with a queue when it was created, then this method will
always return false
.
Returns
true
if and only if this reference object has
been enqueued