请问您关于JVM垃圾回收过程的问题能否回答一下?
为什么堆被分成Eden、Survivor空间和老年代?
当进行年轻代清理时,对象通过引用从根开始访问以查找不可达对象。可达对象标记为“存活”,而不可达对象未被标记并将被消除。
因此,所有对象都被考虑在内,包括在老年代分配的对象也会被访问和标记为可达状态。
据我所知,同时回收年轻代和老年代是很困难的,因为这些代位于内存的不同连续部分。
但是,如果在年轻代清理阶段进行最简单的标记,我们就可以得到包含所有存活和死亡对象的位图,因为所有可达和不可达对象都已知并且可以删除,那么为什么我们需要这种分割呢?
我还知道弱代假说,但是我们为什么需要这种划分呢?