Dalvik虚拟机
2:如果我们不使用这个Mark Stack显式堆栈的话,那么我们进行标记的时候,用递归的方式标记,如果链路太长(因为我们每次方法的调用都是一次栈帧的入栈),那么这个虚拟机栈就会装入太多栈帧,它的长度受到了操作系统的限制,如果太多,可能就会导致一个栈的溢出。在标记的时候,Mark Stack会将在可达性链路上的对象标记为1,表示不应该被回收,将不在可达性链路上的对象标记为0,表示应该被回收的对象,然后Mark Stack存储的是在可达性链路上的对象。并发 GC 允许应用程序继续运行,同时在后台执行垃圾回收。

















