C#:值类型和引用类型在内存中的存储(堆栈)

前言值类型引用类型都是用来存储数据的(值类型存数据,引用类型存引用),但是这两种类型本身又需要存储在内存中。

堆栈出现的原因:在程序运行中,为了提高程序的运行效率,就分出了一大一小两块区域来分别存储不同类型的数据,分别是堆和栈;区域小的栈,读取速度相对较快,区域大的堆,读取速度相对较慢。

概念:数据在哪里声明,就存储在哪里。

方法中声明:值类型数据存储在栈中,引用类型的引用存储在栈中,数据存储在堆中;方法在栈中执行,在方法内声明的变量都是在栈中存储,方法执行完毕后将这些数据清除,方法内部的值类型将直接被清除,引用类型将被清除引用,而存储在堆中的数据则等待GC自动回收。

类中:值类型数据存储在堆中,引用类型的引用和数据都存储在堆中。
引用类型在堆中存储的示意图

猜你喜欢

转载自blog.csdn.net/u011229164/article/details/106712521
今日推荐