只有当对象所在代被 Collect 了,改对象所在代才会加 1 ,代值最大为 2 示例1: using System; namespace myMethod { class People{} class lgs { static void Main() { People p = new People(); Console.WriteLine(GC.GetGeneration(p)); GC.Collect(); GC.Collect(); Console.WriteLine(GC.GetGene…
之前学习java时,笔者看到很多学习资料说,gc判断object存活与否的算法是:给对象添加一个引用计数器,每当有一处地方引用它时,计数器值就加1,当引用失效时,计数器值就减1,当对象计数清零时,对象就会被gc回收.但等笔者开始学习jvm虚拟机后,才明白实际上gc并不是用这种算法实现的,理由如下: package gc; public class ReferenceCountingGC { public Object instance = null; *; *occupy_1MB]; publi…