Класс, в котором мы переопределяем метод финализации
public class TestClass {
public TestClass() {
System.out.println("constructor");
}
public void display() {
System.out.println("display");
}
@Override
public void finalize() {
System.out.println("destructor");
}
}
Вероятность вызова метода финализации
public class TestGarbageCollection {
public static void main(String[] args) {
while (true) {
TestClass s = new TestClass();
s.display();
System.gc();
}
}
}
когда память перегружена объектами дампа, gc вызовет метод finalize
запустите и посмотрите консоль, где вы не найдете часто вызываемого метода finalize, когда память перегружается, вызывается метод finalize