给定Java对象,如何获取引用它的对象列表?
GC中必须有扩展机制来执行此类操作,似乎无法找到它们。
答案 0 :(得分:2)
如果您正在寻找内存泄漏,我发现使用Eclipse MAT分析堆转储非常有用。您可以选择一个对象并询问“GC根”的路径,即显示所有使这个对象不被垃圾收集的引用链。
答案 1 :(得分:2)
我不确定你所追求的确切内容是否易于访问。
JPDA(Java平台调试器架构)可以构建调试器,因此如果您想深入研究内部,那么这是一个很好的起点。您可能会发现blog on the JPDA有用。查看Sun Developer Network JPDA page以获取文档,常见问题解答,示例代码和论坛的链接。
两个可能是良好起点的接口是:
答案 2 :(得分:0)
我认为没有这样的机制,GC没有理由需要一个机制。
答案 3 :(得分:0)
这取决于你想如何使用它,但是如果你需要它来分析你的内存使用情况,那么在MemoryAnalyzer或JHat中使用heapdump并打开它可能会给你所需的信息。可以找到采用堆转储的不同方法here。
答案 4 :(得分:0)
GC不支持此功能,尽管JDPA API可以支持。但是我在Java应用程序中做这种事情时会非常谨慎。它的时间和记忆都可能过于昂贵。