【发布时间】:2011-10-14 12:46:39
【问题描述】:
我正在寻找我的应用程序中的内存泄漏,我使用的分析器告诉我寻找这些类型的引用,但我不知道我在寻找什么。有人可以解释一下吗?
谢谢,
艾略特
【问题讨论】:
标签: java memory memory-leaks
我正在寻找我的应用程序中的内存泄漏,我使用的分析器告诉我寻找这些类型的引用,但我不知道我在寻找什么。有人可以解释一下吗?
谢谢,
艾略特
【问题讨论】:
标签: java memory memory-leaks
您可以对 OUTER 类进行合成反向引用,但不能对内部类实例。
例如
class Outer {
class Inner {
}
static class Nested {
}
}
在这个例子中,Inner 引用了 Outer 类。嵌套没有。如果 Outer 很大,这可能意味着您可以握住不需要的对象。
简而言之,如果可以的话,创建内部类static。
【讨论】:
我不认为有合成引用到一个内部类。我认为探查器正在谈论 from 内部类对其封闭类的引用。这些是在您有这样的代码时创建的:
class Outer {
class Inner {
}
}
在上面的代码中,Inner 的每个实例都有一个与之关联的Outer 实例。该关联通过 Inner 的隐藏合成成员字段维护,其中包含对 Outer 的引用。
如果代码是这样的变化:
class Outer {
static class Inner {
}
}
不会有这样的综合参考。
【讨论】: