Java 什么是对内部类的合成反向引用

Java 什么是对内部类的合成反向引用,java,memory,memory-leaks,Java,Memory,Memory Leaks,我正在寻找我的应用程序中的内存泄漏,我使用的探查器告诉我寻找这些类型的引用,但我不知道我在寻找什么。谁能解释一下吗 谢谢 Elliott您可以对外部类进行合成反向引用,但不能对内部类实例进行合成反向引用 e、 g 在本例中,内部有一个对外部类的引用。嵌套的没有。如果外层空间很大,这意味着你可以抓住一个你不需要的物体 简而言之,如果可以的话,让内部类成为静态的。我不认为存在对内部类的合成引用。我认为探查器讨论的是从内部类到它们的封闭类的引用。当您有如下代码时,将创建这些代码: class Oute

我正在寻找我的应用程序中的内存泄漏,我使用的探查器告诉我寻找这些类型的引用,但我不知道我在寻找什么。谁能解释一下吗

谢谢


Elliott

您可以对外部类进行合成反向引用,但不能对内部类实例进行合成反向引用

e、 g

在本例中,内部有一个对外部类的引用。嵌套的没有。如果外层空间很大,这意味着你可以抓住一个你不需要的物体


简而言之,如果可以的话,让内部类成为静态的。

我不认为存在对内部类的合成引用。我认为探查器讨论的是从内部类到它们的封闭类的引用。当您有如下代码时,将创建这些代码:

class Outer {
  class Inner {
  }
}
在上述代码中,
内部
的每个实例都有一个与之关联的
外部
实例。关联通过
内部
的隐藏合成成员字段进行维护,该字段包含对
外部
的引用

如果代码是这样更改的:

class Outer {
  static class Inner {
  }
}
不会有这样的综合参考

class Outer {
  static class Inner {
  }
}