堆是一块内存地区,在堆里可以分派大块的内存用于存储某范例的数据对象;
堆的特性:
1、堆内里的内存可以以恣意递次存入和移除;
2、不能显现地删除顺序在堆内里保留的数据;
3、靠CLR的自动GC(垃圾收集器)推断并自动消灭无主的堆对象,然后开释它;
4、被开释对象的内存可以被重用;
2、什么是栈?
栈是一个内存数组,是一个后进先出的数据结构;
几种数据范例:
1、某些范例变量的值;
2、顺序当前的实行环境;
3、传递给要领的参数;
几个广泛特性:
1、数据只能从栈的顶端插进去和删除;
2、把数据放到栈顶成为入栈;
3、从栈顶删除数据成为出栈;
3、栈和堆什么区别?
1、寄存的数据范例差别;
2、栈只能从顶端插进去和删除,堆可以以恣意递次存入和移除;
3、栈内存无需治理,也不受GC治理。当栈顶元素运用终了,立马开释。而堆则须要GC(Garbage collection:垃圾收集器)清算;
4、栈由体系自动分派,速率较快。然则无法掌握。堆则是那些由new分派的内存块,他们的开释编译器不去管,由我们的应用顺序去掌握,平常速率比较慢,而且轻易发生内存碎片.
以上就是引见C#中的堆和栈的细致内容,更多请关注ki4网别的相干文章!