堆和栈的区别

Posted travisgrady

tags:

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

堆和栈的区别

答:首先理清楚2个概念,堆和栈

栈:什么是栈呢?可以把栈当做是一个桶,后放进去的先拿出来(后进先出原则),栈是操作系统在创建某个进程,线程时候,为其存储的区域、

堆:堆是在程序运行时,向系统申请的一块内存空间。

栈里一般存放的是局部变量,凡是在方法体里定义的变量都是局部变量,变量有自己的作用域,一旦离开作用域,变量立即被释放。所以局部变量的生命周期一般很短。

堆里存放的一般都是数组和new创建的对象。在堆里开辟一块空间,同时在栈里存放一个对该堆里的内存地址的引用。

因此,堆和栈的区别:

1、栈中一般存放局部变量,堆里一般存放的是引用对象的实体

2、栈内存更新速度快于堆内存,因为局部变量生命周期短

3、栈内存一般都是自己释放空间,堆内存需要调用GC来进行垃圾回收

以上是关于堆和栈的区别的主要内容,如果未能解决你的问题,请参考以下文章

java中堆和栈的区别!!!!

Java中的堆和栈的区别

堆和栈的区别:

iOS中堆和栈的区别

堆和栈的区别

堆和栈的区别 ?