在局部GC时,JVM除了GC Roots,还会遍历Remembered Set,放置误清不同区域间相互引用的对象。
我想问的就是可以举一个不同区域间相互引用的例子吗?
比如老年代有个对象引用了年轻代,什么情况下会这样做呢?
这种应该不是我们可以手动操作的把?
在局部GC时,JVM除了GC Roots,还会遍历Remembered Set,放置误清不同区域间相互引用的对象。
我想问的就是可以举一个不同区域间相互引用的例子吗?
比如老年代有个对象引用了年轻代,什么情况下会这样做呢?
这种应该不是我们可以手动操作的把?
8 回答6.6k 阅读
4 回答714 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答974 阅读✓ 已解决
大概能想到的就是大对象直接分配到老年代,持有的对象在年轻代。不过其实这都不重要。通过可达性分析的结果已经确定,如果这个对象需要被回收,它也就没用了,它在哪个代也没用了,就等待被回收。