基本概念:CLR-所有为.NET编写的程序(包括用C#编写的COM+组件)都运行在称为通用语言运行库(CommonLanguageRuntime,CLR)的环境内。为运行于CLR内编写的应用程序被看作是托管代码。托管代码可利用CLR提供的服务。某些这类服务,如垃圾收集(GarbageCollection),是自动提供的。其他服务,如对软件的版本编号,则要求程序员干预。为什么会有垃圾回收机制:如果我们的内存足够大,大到有无数的连续内存块给我们的应用程序调用,那么垃圾回收机制就很鸡肋了,但实际上是,我们的内存永远无法满足我们应用程序的饥渴的需求,内存越大,应用程序所需求的内存也越大。有那么一部分程序申请了内存(以堆的形式),但是并不是一直在用,用句粗话就是“占着*不*”的意思,为了干掉这么一些个浪费社会资源的存在,内存回收机制的诞生就迫在眉睫了。程序如何申请内存:CLR启动应用程序时创建和初始化托管堆。另外,CLR初始化指向堆的基地址的堆指针。堆指针包含下一个可用内存块的地址。图11展示了初始化后且在创建任何对象之前的托管堆。创建任河对象前的堆劃1冲在