标签:作用域 方法 运行 需要 数组 运行时 存储 堆内存 速度
堆和栈的区别
答:首先理清楚2个概念,堆和栈
栈:什么是栈呢?可以把栈当做是一个桶,后放进去的先拿出来(后进先出原则),栈是操作系统在创建某个进程,线程时候,为其存储的区域、
堆:堆是在程序运行时,向系统申请的一块内存空间。
栈里一般存放的是局部变量,凡是在方法体里定义的变量都是局部变量,变量有自己的作用域,一旦离开作用域,变量立即被释放。所以局部变量的生命周期一般很短。
堆里存放的一般都是数组和new创建的对象。在堆里开辟一块空间,同时在栈里存放一个对该堆里的内存地址的引用。
因此,堆和栈的区别:
1、栈中一般存放局部变量,堆里一般存放的是引用对象的实体
2、栈内存更新速度快于堆内存,因为局部变量生命周期短
3、栈内存一般都是自己释放空间,堆内存需要调用GC来进行垃圾回收
标签:作用域 方法 运行 需要 数组 运行时 存储 堆内存 速度
原文地址:https://www.cnblogs.com/TravisGrady/p/10386385.html