public class Finalize { private String name; public Finalize(String name) { this.name = name; } @Override protected void finalize() throws Throwable { System.out.println("finalize:"+name); } } @Test public void testFinalize() { Finalize a = new Finalize("a"); Finalize b = new Finalize("b"); Finalize c = new Finalize("c"); // a = null; a = b; a = c; // b = null; c = null; a = null; System.gc(); } finalize:c finalize:a |
|