栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

检查垃圾收集器是否可以获取对象

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

检查垃圾收集器是否可以获取对象

您无法在运行时使用任意对象执行此操作,实际上,不可能完全确定地执行此操作。但是,有两种选择可能会根据您的需要而适用:

  1. 将引用设置为后,进行堆转储
    null
    ,然后将其加载到堆分析器工具(如jhat或支持该分析器的探查器)中。这些工具应使您能够从GC根目录遍历路径,从而检查对象是否仍然可以访问。
  2. 将对象包装在给定的PhantomReference中
    ReferenceQueue
    。将引用放入队列后,您就知道该对象已被垃圾回收。(不幸的是,如果未对引用进行排队,则可能是因为该对象仍然可以访问,或者可能是因为GC尚未检查该对象。对于所有与GC相关的问题,垃圾回收不是确定性过程! )

总的来说,我同意最好的选择是 了解
内存泄漏问题,并设计应用程序来避免这些问题。如果确实有内存泄漏,那么它应该很明显,然后您就可以将精力集中在发现问题上(再次通过转储并分析堆中无法正确访问的对象)。

上面的步骤比较耗时,不应该在每次更改后都只是为了确保自己而做,而是用来调查 特定 问题的工具。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569931.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号