Skip to content

栈与堆(Stack & Heap)

程序运行时,内存大致可以分为两类:

栈(Stack)

  • 存放函数调用的临时信息:参数、局部变量、返回地址。
  • “后进先出”(LIFO)。
  • 分配和释放很快。

递归太深会导致“栈溢出”。

堆(Heap)

  • 存放对象、数组等动态数据。
  • 空间更大,但管理更复杂。
  • 需要垃圾回收器释放不再使用的对象。

一个直观比喻

  • 栈像“叠盘子”:最后放的最先拿。
  • 堆像“仓库”:物品放哪儿都行,需要登记和清理。

为什么你需要知道它

  • 理解递归和栈溢出。
  • 理解为什么对象需要 GC。
  • 理解“引用”和“生命周期”。

进一步阅读

深入理解栈与堆,会让你对性能、内存泄漏有更直观的判断。

CC-BY 4.0 Licensed