堆和栈之间有五个主要区别,即:
1.应用方法不同。栈是系统自动分配的,堆是应用创建的;
2.不同的应用规模。栈得到的空较小,堆得到的空较大;
3.应用效率的差异。Stack由系统自动分配,速度较快,而heap一般较慢;
4.不同的存储内容。调用函数时,先将函数调用语句的下一个可执行语句的地址放入堆栈,然后将函数的参数放入堆栈,其中静态变量不放入堆栈。堆通常以一个字节为头存储堆的大小,堆中的具体内容是人为安排的;
5.底层就不一样了。栈是连续的空,堆是不连续的空。