ReferenceQueue: remove()
import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java.lang.ref.WeakReference; public class Main { public static void main(String[] argv) throws Exception { ReferenceQueue rq = new ReferenceQueue(); WeakReference<String> wr = new WeakReference<String>("string", rq); while (true) { Reference r = rq.remove(); if (r == wr) { System.out.println("no longer referenced"); } } } }