日期:2014-05-20 浏览次数:20760 次
public class TestFinalize { public static void main(String[] args) { TestFinalize2 tf = new TestFinalize2(); tf.change(); new TestFinalize2(); System.gc(); } } class TestFinalize2 { private boolean b = false; TestFinalize2() { b = true; } void change() { b = false; } protected void finalize() { if (b) System.out.println("000"); } }
public static void main(String[] args) { new TestFinalize2();//没有引用链接到此对象 System.gc();//第一次标记,发现对象没有引用,把此对象加入F-Queue中 try { Thread.sleep(500);//让主线程停止0.5秒,因为Finalizer方法优先级低 } catch (InterruptedException e) { } System.gc();//第二次执行标记 }