一、线程堆栈和托管堆
1.线程堆栈
每个正在运行的程序都对应一个进程(Process),在一个进程内部,可以有一个或多个线程(Thread)。每个线程都拥有一块内存,成为线程堆栈。用于保存局部变量、传递的参数等。
值类型变量所占用的内存单元是在线程堆栈中分配的。
2.托管堆
在.NET环境下,堆由CLR进行管理,所以将其成为托管堆。
引用类型变量引用的对象所占用的内存是在托管堆中分配的。
3.引用类型变量的内存模型
class MyClass { public int Value; public int[] Numbers = new int[10]; } static void Main(string[] args) { MyClass obj; obj = new MyClass(); }

变量obj存放于线程堆栈,保存托管堆中MyClass类型对象的地址。
浙公网安备 33010602011771号