栈和堆有什么不同之处

Posted boniu666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈和堆有什么不同之处相关的知识,希望对你有一定的参考价值。

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

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

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

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

总结如下:

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

 

 

以上是关于栈和堆有什么不同之处的主要内容,如果未能解决你的问题,请参考以下文章

栈和堆

c和c ++中的动态内存分配和堆有啥区别

为啥会有栈和堆?

为啥会有栈和堆?

浅谈Java中的栈和堆

JVM 运行时数据区:程序计数器Java 虚拟机栈和本地方法栈,方法区和堆