堆(heap)和栈(stack)

堆(heap)和栈(stack)

复习一下堆和栈的概念和区别。

堆和栈都是一种数据结构,存储在内存之中。

堆是运行时动态变化的,在运行时确定,速度慢。

进程内堆的数据共享。

数据量不确定用堆,大数据量用堆。

栈是静态的,在编译时确定,速度快。

每个函数维护一个自己的调用栈,不同函数的栈不能共享,每个线程之间的栈也不能共享。

数据量确定用栈。

释放堆栈

  1. 对于手动管理内存的语言,手动free堆栈的空间。
  2. 对于有GC的语言,将堆栈的引用设置为null。

ref

  1. https://cloud.tencent.com/developer/article/1688327

评论