Из любопытства
Почему модификатор доступа к методу finalize() создается как protected. Почему это не может быть public? Может ли кто-нибудь объяснить мне какую-то конкретную причину?
Кроме того, я узнал, что метод finalize() вызывается только один раз. Если я дважды назову его в своей программе, что происходит? Может ли сборщик мусора повторить это?
private void dummyCall() {
try {
finalize();
finalize();
} catch (Throwable e) {
e.printStackTrace();//NOT REACHES EXCEPTION
}
}