/* * FinalizationTest.java * * Created on 24. bøezen 2004, 13:55 */ /** * * @author nenik */ public class FinalizationTest { /** Creates a new instance of FinalizationTest */ public FinalizationTest() { } /** * @param args the command line arguments */ public static void main(String[] args) throws Exception { // TODO code application logic here ChainItem b = new ChainItem("B", new ChainItem("C", null)); ChainItem head = new ChainItem("A", b); b = null; System.gc(); System.runFinalization(); Thread.sleep(1000); head = null; System.gc(); System.runFinalization(); Thread.sleep(1000); } private static class ChainItem { ChainItem next; String name; public ChainItem(String name, ChainItem next) { this.next = next; this.name = name; } protected void finalize() { System.out.println("finalized " + name + ", next=" + next); } } }