堆内存与栈内存的区别?

1、栈内存

  栈: 是一种连续储存的数据结构,具有先进后出、后进先出的性质。
  栈内的元素只能通过列表的一端访问,这一端称为栈顶。由于栈具有先进后出的特点,所有任何不在栈顶的元素都无法访问

2、堆内存

  堆: 是一种非连续的树形储存的数据结构,具有队列优先,先进先出的性质。
  每个节点有一个值,整棵树是经过排序的。特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。常用来实现优先队列,存取随意。

  优点:

  动态分配内存大小,“按需分配”;

   缺点:

   由于要在运动时才动态分配内存,相比于栈内存,它的存取速度较慢。

你可能感兴趣的:(前端面试题,JavaScript,数据结构,java,开发语言)