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 (), и «очищенный» выводится на консоль.Почему я должен явно вызывать сборщик мусора?