Это старая версия документа.
Weak Referencies
class TheStrong { public Object link; public Object getLink(){ return link; } public void print(Object newlink){ link = newlink; System.out.println("TheStrong: my link =" + getLink()); } } class TheWeak { public WeakReference<Object> link; public Object getLink(){ return link.get(); } public void print(Object newlink){ link = new WeakReference<>( newlink ); System.out.println("TheWeak: my link =" + getLink()); } } public class Test { public static void main(String[] args) throws IOException { TheWeak a1 = new TheWeak(); a1.print(Arrays.asList(1,2,3)); TheStrong b1 = new TheStrong(); b1.print(Arrays.asList(4,5,6)); Runtime r = Runtime.getRuntime(); r.gc(); System.out.println("TheWeak: its link=" + a1.link.get()); System.out.println("TheStrong: its link=" + b1.link); } }