码迷,mamicode.com
首页 > 其他好文 > 详细

堆和栈的区别

时间:2019-02-16 00:07:03      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:作用域   方法   运行   需要   数组   运行时   存储   堆内存   速度   

堆和栈的区别

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

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

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

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

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

因此,堆和栈的区别:

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

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

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

堆和栈的区别

标签:作用域   方法   运行   需要   数组   运行时   存储   堆内存   速度   

原文地址:https://www.cnblogs.com/TravisGrady/p/10386385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!