一. 内存管理 内存分配器 堆和栈区别 1.空间分配区别: 栈:由操作系统(编译器)自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构中的栈。 堆:一般由代码分配释放,若代码没有显式释放,程序结束时可能由OS回收,分配方式类似链表。 2.缓存方式区别: 栈:使用的是一级缓存,通常都是被调用时处于存储空间中,调用完毕立即释放。 堆:存放在二级缓存中,生命周期由垃圾回收算法来决定。 3.数据结构区别: 栈:先进后出的线性结构。 堆:类似于一颗树。 1.1 go内存分配