栈和堆有什么不同之处

1、存储对象不同:栈存储的是局部变量,堆存储的是实体。

2、释放机制不同:栈的里面存储的局部变量生命周期结束,则就释放掉局部变量;而堆的话,则是通过垃圾回收机制去释放掉实体。

3、更新速度不同:局部变量的生命周期短,so,栈的更新速度快于堆的更新速度。

4、申请空间不同:栈是编译器自动分配:存储局部变量,函数参数;而堆是程序员写的代码手动分配,存储的是实体。

总结如下:

   堆(heap) 栈(stack)
时效   持久化 临时
存储对象   全局(实体)   局部(局部变量,函数参数)
内存分配   手动申请,手动释放 自动申请,自动释放(出栈时)

 

原文地址:https://www.cnblogs.com/boniu666/p/8744977.html