栈和堆 栈(stack): 数据只能从栈的顶端插⼊和删除 把数据放⼊栈顶称为⼊栈(push) 从栈顶删除数据称为出栈(pop) 栈是自上向下进行填充,即由高内存地址指向低内存地址,并且内存分配是连续的,C#中所有的值类型和引用类型的引用都分配在栈上, 栈根据后进先出的原则,依次对分配和释放内存对象。 堆(heap):堆是⼀块内存区域,与栈不同,堆⾥的内存能够以任意顺序存⼊和移除 堆是从下往上分配,所以已用的空间在自由空间下面,C#中所有引用类型的对象分配在托管堆上,托管堆在内存上是连续分配的, 并且内存对象的释放受垃圾收集机制的管理,效率相对于栈来说要低的多。 本栏目推荐文章栈和队列[刷题技巧] 栈和队列相关知识点汇总算法学习Day10栈和队列part1堆结构和堆排序栈和队列栈内存和堆内存概念、内存逃逸分析一个关于栈和最小值的题目栈和队列算法总结前端入栈和出栈栈和括号匹配,一文搞懂