栈内存管理 栈内存空间的管理一般是编译器来自动分配和释放的。 其中,入参和局部变量存在于栈里(stack和heap都是动态存储区),全局变量存在于静态存储区。 go使用了 bp和sp两个寄存器,他们存储了栈的基址指针和栈顶指针 go语言的逃逸分析 指向栈对象的指针不能存在于堆中; 指向栈对象的指针不能在栈对象回收后存活; 编译器动态决定变量是被分配到栈里还是堆里,逃逸到堆里就是意味着指针指向的对象不会被回收,需要一直被使用,因为编译器会直接回收栈的内存对象,如果一个对象不想被回收,只能逃逸到堆中