Java 匿名类和垃圾收集器

原文 标签 java garbage-collection jvm anonymous-class

让我们假设某个类是不可访问的,但是该类生成了另一个可访问的匿名类。第一个可以被垃圾收集器删除吗?

例子:


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?

最佳答案

不,在这种情况下,外部实例仍然可以访问,因为每个非静态内部类都有对其外部类实例的隐式重新引用。

关于Java 匿名类和垃圾收集器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9530901/

相关文章:

java - 苏门答腊项目在其他 JVM 语言中的应用

java - 在 Tomcat 中检索文件的问题

java - FileReader 和 FileInputStream 的不同输出

java - 如何按字母顺序对哈希表中的元素排序?

c# - 垃圾收集和终结器 : Finer Points

Java CMS GC,GC线程在系统空闲时占用CPU

JAVA:将图像放入 jTable 单元格中

python - 多处理和垃圾收集

java - 通过创建新变量来提高性能

scala - 关于 Future.firstCompletedOf 和 Garbage Collect 机制