此页内容

约 278 字小于 1 分钟

2022-04-14

提问

  1. 什么是栈?
  2. 什么是堆?
  3. 有什么区别和联系?

栈和堆的概念存在于数据结构中和操作系统内存中。

在数据结构中,栈中的数据的存取方式是先进后出。 而堆是一个优先队列,按优先级来进行排序的,优先级可以按照大小来规定。

在操作系统中,内存被分为栈区和堆区。

栈区内存由变意思自动分配释放,存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈。

堆区内存一般有程序员分配释放,若不手动释放,程序结束时可能有垃圾回收机制回收。

在javascript中,由于 javascript的 GC机制,开发人员很少需要关注 栈和堆。

一般都是了解 基本数据类型是存放在 栈中,而引用数据类型的实体存放在堆中,然后在栈中保存该数据在堆中的地址。