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

Posted Locutus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 变量的生命周期:堆(heap)相关的知识,希望对你有一定的参考价值。

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

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

以上是关于go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 变量的生命周期:堆(heap)的主要内容,如果未能解决你的问题,请参考以下文章

go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 常量变量的声明:单个变量的声明与赋值

go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 变量的数值类型转换

go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 常量变量的声明:变量初始化声明和变量赋值

go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 常量变量的声明:多个变量的初始化声明与赋值

go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 变量的类型零值

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