首页 > 代码库 > .net 垃圾回收机制
.net 垃圾回收机制
1 using System; 2 3 namespace GCTest 4 { 5 class Program 6 { 7 static void print(string str) { Console.WriteLine(str); } 8 static void Main(string[] args) 9 {10 var o1 = new obj();11 print("系统支持的最大代数:" + GC.MaxGeneration);12 print("o1所在代为:"+GC.GetGeneration(o1));//对象刚创建时位于0代13 14 //对所有代进行回收,o1依然存活,从0代移到1代15 GC.Collect();16 print("o1所在代为:" + GC.GetGeneration(o1));17 18 var o2 = new obj();//新建对象在0代19 //回收,o1移动到2代,o2移动到1代20 GC.Collect();21 print("o1所在代为:" + GC.GetGeneration(o1) + ",o2所在代为:" + GC.GetGeneration(o2));22 //2代上的对象如果依然被引用,在回收时将驻留在2代上23 GC.Collect();24 print("o1所在代为:" + GC.GetGeneration(o1));25 o1 = null;//将引用释放的时候,并没有立即执行回收 ,也就是说o1原来指向的对象依然存在。26 print("此时未执行回收!");27 GC.Collect();28 Console.ReadKey(); 29 }30 }31 class obj32 {33 ~obj() 34 {35 Console.WriteLine("析构……");36 }37 }38 39 }
.net 垃圾回收机制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。