程序内存区域:堆、栈、静态存储区
程序所有的数据,也就是所有的变量,都是存储在内存中的。
栈空间比较小,但是读取速度快
堆空间比较大,但是读取速度慢
栈
栈的特征:
1.数据只能从栈的顶端插入和删除
2.把数据放入栈顶叫做入栈
3.从栈顶删除数据称为出栈
后进先出或者叫先进后出
堆
堆是一块内存区域,与栈不同,堆里的内存能够以任意顺序存入和移除
GC Garbage Collector垃圾回收器
CLR的GC就是内存管理机制,我们写程序不需要关心内存的使用,是因为这些都是CLR帮我们做了
值类型和引用类型
类型被分为两种:值类型(整形、bool、struct、char、小数)
引用类型(string、数组、自定义的类、内置的类)
值类型只需要一段单独的内存,用于存储实际的数据,(单独定义的时候放在栈中)
引用类型需要两端内存
第一段存储实际的数据,它总是位于堆中
第二段是一个引用,指向数据在堆中的存放位置