Это старая версия документа.
Weak Referencies
<code java>
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); }
}
<code>