iOS堆栈的理解和区别

来源:互联网 发布:薛之谦女装店淘宝店 编辑:程序博客网 时间:2024/04/29 08:43


堆栈的区别:

1、堆空间的内存是动态分配的、一般存放对象、并且需要手动释放内存。

2、栈空间的内存是由系统自动分配、一般存放局部变量等、不需要手动管理内存。


从管理方式来讲:

○ 对于栈来讲,是由编译器自动管理,无需我们手工控制;

○ 对于堆来说,释放工作由程序员控制,容易产生内存泄露(memory leak)


从申请大小大小方面讲:

○ 栈空间比较小

○ 堆空间比较大


从数据存储方面来讲:

○ 栈空间中一般存储基本类型,对象的地址

○ 堆空间一般存放对象本身,blockcopy


0 0