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/

相关文章:

.net - 杀死线程后如何分配内存?

java - 关于java的5个问题

kotlin - Kotlin JVM 和 Kotlin Native 有什么区别?

java - 在具有特定 mysql 主机的远程主机上使用 SSH 隧道连接到 MySql 数据库

java - 类未找到异常 : Didn't find class "com.xxx.xxx.Application" on path: DexPathList on Linux

reference - 引用循环的实际例子有哪些?

Java - 当创建类关闭时对象引用是否会被销毁?

java - JVM在哪里存储运行时实现的抽象类的信息?

java - 整数作为原始类型

c# - 从哪个 Java GUI 框架开始?