说说栈和堆的理解,以及它们的区别
在编译阶段,除了声明变量和函数,查找环境中的标识符这两项工作之外,还会进行内存分配。不同类型的数据会分配到不同的内存空间:
栈内存:引擎执行代码时工作的内存空间,除了引擎,也用来保存基本值和引用类型值的地址
堆内存:用来保存一组无序且唯一的引用类型值,可以使用栈中的键名来取得
区别:
· 栈内存存储的是局部变量而堆内存存储的是对象(实体)
栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短
栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的对象会被垃圾回收机制 不定时的回收
浙公网安备 33010602011771号