首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java - 垃圾收集器如何快速知道哪些对象不再有对它们的引用?

java - 垃圾收集器如何快速知道哪些对象不再有对它们的引用?
EN

Stack Overflow用户
提问于 2018-03-21 04:38:50
回答 2查看 0关注 0票数 0

我明白,在Java中,如果一个对象不再有任何引用,那么垃圾收集器会在一段时间后回收它。

但是垃圾收集器如何知道一个对象是否有与之相关的引用?

垃圾回收器是否使用某种散列表或表格?

请注意,我不是问gc如何工作。真的,我不是这样问的。

特别要求,如何gc知道哪些对象是活的,哪些是死的,效率高。

这就是为什么我在我的问题中说gc保持某种散列表或集合,并持续更新对象具有的引用数量?

EN

Stack Overflow用户

发布于 2018-03-21 13:17:08

典型的现代JVM使用几种不同类型的垃圾收集器。

一种经常用于已经存在一段时间的对象的类型称为标记和扫描。它基本上涉及从已知的“活”对象(所谓的垃圾收集根)开始,遵循所有对象引用链,并将每个可到达对象标记为“live”。

一旦完成,扫描阶段就可以回收那些未被标记为“有效”的对象。

为了使此过程起作用,JVM必须知道每个对象引用在内存中的位置。这是垃圾收集器准确的必要条件(这是Java的)。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档