Java анонимные классы и сборщик мусора

Предположим, что некоторый класс недоступен, но есть другие анонимные классы, созданные классом, которые достижимы. Может ли первый из них быть удален сборщиком мусора?

Пример:


class Outer {
  public Object getInner() {
    return new Object() {};
  }
}

...

Outer outer = new Outer();
Object inner = outer.getInner();

// Could the "outer" instance be removed here considering that "inner" is using below?

1 ответ

Решение

Нет, внешний экземпляр все еще доступен в этом случае, так как каждый нестатический внутренний класс имеет неявную ссылку на свой экземпляр внешнего класса.

Другие вопросы по тегам