Вопрос по java – Ссылка на объект во время финализации

18

Что произойдет, если вы сохраните ссылку на текущий объект во время завершения вызова? Например:

class foo {
    ...
    public void finalize() {
        bar.REFERENCE = this;
    }
}

Является ли объект мусором, или нет? Что происходит, когда вы пытаетесь получить доступbar.REFERENCE потом?

Error: User Rate Limit Exceeded Nathaniel Flath
Error: User Rate Limit Exceeded Michael Myers♦

Ваш Ответ

5   ответов
9

12

7

finalize()

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
2

PhantomReferenceReferenceQueuefinalize

@Override protected void finalize() throws Throwable

ClassLoaderObject

1

finalize()foo

barREFERENCEfoofoo

finalize()NullPointerExceptionbarnull

Нотабене Как уже отмечали другие ... ваш пример определенно стоит избегать.

Похожие вопросы