堆和栈的区别
Posted travisgrady
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了堆和栈的区别相关的知识,希望对你有一定的参考价值。
堆和栈的区别
答:首先理清楚2个概念,堆和栈
栈:什么是栈呢?可以把栈当做是一个桶,后放进去的先拿出来(后进先出原则),栈是操作系统在创建某个进程,线程时候,为其存储的区域、
堆:堆是在程序运行时,向系统申请的一块内存空间。
栈里一般存放的是局部变量,凡是在方法体里定义的变量都是局部变量,变量有自己的作用域,一旦离开作用域,变量立即被释放。所以局部变量的生命周期一般很短。
堆里存放的一般都是数组和new创建的对象。在堆里开辟一块空间,同时在栈里存放一个对该堆里的内存地址的引用。
因此,堆和栈的区别:
1、栈中一般存放局部变量,堆里一般存放的是引用对象的实体
2、栈内存更新速度快于堆内存,因为局部变量生命周期短
3、栈内存一般都是自己释放空间,堆内存需要调用GC来进行垃圾回收
以上是关于堆和栈的区别的主要内容,如果未能解决你的问题,请参考以下文章