There are several kinds of reference, the commonest being strong. This means that an object is always “reachable” until the reference is broken, and that object cannot be deleted by the garbage collector.
There are at least two other kinds (weak and phantom). What they mean is that the object can be garbage collected, provided it has no strong references remaining. Have you found the
package summary?
It appears that objects which cease to be strongly reachable are put into a queue to be deleted; when they are removed from the queue, their memory can be reclaimed because they are no longer reachable.
I am sure other people will know more about this than me.