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 {
}
}