栈和堆
提问
- 什么是栈?
- 什么是堆?
- 有什么区别和联系?
栈和堆的概念存在于数据结构中和操作系统内存中。
在数据结构中,栈中的数据的存取方式是先进后出。 而堆是一个优先队列,按优先级来进行排序的,优先级可以按照大小来规定。
在操作系统中,内存被分为栈区和堆区。
栈区内存由变意思自动分配释放,存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈。
堆区内存一般有程序员分配释放,若不手动释放,程序结束时可能有垃圾回收机制回收。
在javascript中,由于 javascript的 GC机制,开发人员很少需要关注 栈和堆。
一般都是了解 基本数据类型是存放在 栈中,而引用数据类型的实体存放在堆中,然后在栈中保存该数据在堆中的地址。