堆、栈空间分配区别 堆:一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收,分配方式类似于链表; 栈:由操作系统(编译器)自动释放,存放函数的参数值、局部变量的值等。 堆、栈缓存方式区别: 堆:存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定; 栈:存放在一级缓存中,通常被调用时处于存储空间中,调用完毕立即释放。 堆、栈数据结构区别 堆:堆可以被看作一棵树; 栈:一种先进后出的数据结构。