一、托管代码/非托管代码C#代码通过C#编译器编译成程序集,程序集由微软中间语言组成,CLR会为程序集开辟一个应用程序域,程序集就是运行在这个应用程序域里面的,应用程序域是相互独立的,互不影响。托管代码:被CLR管理的代码。非托管代码:不被CLR管理的代码。分配在栈空间的变量,一旦执行完成其所在的作用域(即大括号范围)就会被CLR回收。分配在堆里面的对象,当没有任何变量引用它的时候,这个对象就被标记为“垃圾对象”(没有变量引用它),等待垃圾回收器回收。Eg: 代码如下:Person p=new Person();p=null;//p这时候没有指向任何对象空间,此时为“垃圾对象”。二、GCGC会