finalize()方法如何在Java中工作?

时间:2017-07-26 00:29:50

标签: java garbage-collection jvm finalize

public class TestFinalize {


static int i = 0;

public TestFinalize() {
    i++;
}

protected void finalize(){
    i--;
}

public static void main(String[] args) {

    TestFinalize testFinalize = new TestFinalize();
    testFinalize = new TestFinalize();
    System.gc();
    System.out.println(i);

}
}

我预计在这种情况下i的值总是1,但是当我多次运行此代码时,它有时会打印1,有时会打印2。 为什么会这样?

0 个答案:

没有答案