垃圾回收
1.垃圾回收回收什么东西?
垃圾回收只会回收托管堆中的资源
2什么样的对象会被回收?
Person p1=new Person();
p1.Age=10;
p1.Name="xx";
p1=null;
当Person这个对象不再被任何一个变量引用是就可以回收了。
而当
Person p1=new Person();
p1.Age=10;
p1.Name="xx";
Person p2=p1;
p1=null;
虽然p1指向的是空地址,但是p2指向的仍然是Person对象的地址,所以不能被回收;
只要有变量引用该对象就不能被回收
3.什么时候被回收?
这个不确定。
千万不要手动垃圾回收GC.Collect();
因为手动垃圾回收会是短暂程序暂停,还会打乱原本的回收机制,得不偿失!