C#中的堆和栈

什么是栈?什么是堆?

什么是值类型?什么是引用类型?

值类型中的引用类型,引用类型中的值类型。

 

栈(stack)

概念:内存中连续存放的区域,空间小,速度快,存取按先进后出(FILO First In Last Out)

比如一叠盘子,存:一个个的堆叠,取:从上取

                  

值类型

概念:继承于System.ValueType,它是System.Object的子类一般存放于栈中

主要值类型

准确的说值类型的存放与定义的区域有关,在值类型(struct)中定义的引用类型是存放在堆中的,即值类型中的引用类型。

 

堆(Heap)

概念:空间大,速度慢,不连续存放,容易形成碎片,主要存放引用类型的真实值,托管堆的内存由GC回收

                      

引用类型

概念:继承于System.Object,存放于堆上。

主要引用类型

在引用类型中的值类型,如类中的int字段,是存放在堆中的

原文地址:https://www.cnblogs.com/arvinzd/p/14137317.html