有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java对象在程序结束时不是“垃圾收集”的吗?

public class Main {

    public static void main(String[] args) throws InterruptedException {
        ClassA a = new ClassA();
        a = null;

        //Runtime.getRuntime().gc();
        Thread.sleep(4000);
    }
}

public class ClassA {

    @Override
    public void finalize(){
        System.out.println("cleaned");
    }  
}

在上面的代码中,finalize()永远不会执行。控制台上没有打印任何内容。 从gc()中删除注释时,将执行finalize(),然后 “清洁”打印到控制台上。 为什么我必须显式地调用垃圾收集器


共 (1) 个答案