public class Finalize {
protected void finalize() {
System.out.println("this is a finalize fanction");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Finalize();
new Finalize();
System.gc();
}
}
這個取決於System.out和Finalize銷毀的順序,這是不確定的。如果控制台先銷毀,那麼就沒有輸出,如果某個Finalize先銷毀,就輸出1個。如果System.out最後銷毀,就輸出2個
但是可以確認的是,析構函數被執行了2次,無論輸出了幾行