go语言学习笔记 — 基础 — 基本语法— 常量与变量 — 变量的生命周期(2):堆(heap)

  • 在给变量分配内存时,使用堆分配类似于向一个房间中摆放家具(为变量分配内存),家具的尺寸(变量所占内存地址空间)有大有小
  • 在摆放家具(分配内存)时,需要找一块足够大小的空间(内存地址范围)
  • 经过反复摆放和腾挪之后,房子内摆放家具乱七八糟。到了一定时候,房子内虽然还有空间,但是分布在不同区域,没有一段连续的空间可以摆放家具(给变量分配地址空间)
  • 当房子没有连续的空间摆放家具,房主(内存分配器)就需要对现有空间调整优化

与栈内存分配相比,堆更适合不可预知大小的内存分配,但是代价是分配速度慢,易形成内存碎片。堆内存分配如下:

go语言学习笔记 — 基础 — 基本语法— 常量与变量 — 变量的生命周期(2):堆(heap)

上一篇:【栈与队列】leecode347.前k个高频元素


下一篇:264. 丑数 II