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