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