天天看点

Go语言:内存存储模型(对于可执行程序)

Go语言:内存存储模型(对于可执行程序)

代码区

代码区接收计算机指令,

只读

共享

无法操作

数据区

  1. 初始化数据区
  2. 未初始化数据区
  3. 常量区

堆区

栈区

注意

  1. 堆区的空间比栈区大得多
  2. 栈区一般存放已知大小的数据变量,而map切片等有需要append追加所以大小未定。
  3. 从低地址到高地址存储
  4. 数据区一般指全局变量
  5. 地址最低并不是代码区,0-255是系统占用。同样,最高并不是栈区,而是注册表
  6. 栈区从高地址向低地址存储
  7. 栈区存在gc垃圾回收机制,会自己进行维护