18

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

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

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

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

  • 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

    от
  • Error: User Rate Limit Exceeded

    от Michael Myers♦
  • Error: User Rate Limit Exceeded

    от Nathaniel Flath
5 ответов
  • 12

    Error: User Rate Limit Exceeded

  • 7

    Error: User Rate Limit Exceeded

    finalize()

  • 9

    Error: User Rate Limit Exceeded

  • 2

    Error: User Rate Limit Exceeded

    PhantomReferenceReferenceQueuefinalize

    @Override protected void finalize() throws Throwable

    ClassLoaderObject

  • 1

    Error: User Rate Limit Exceeded

    finalize()foo

    barREFERENCEfoofoo

    finalize()NullPointerExceptionbarnull

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