美文网首页
OC中堆栈详解

OC中堆栈详解

作者: wuFANL | 来源:发表于2019-01-14 15:23 被阅读0次

    栈里面存放非对象的基本数据类型

    堆中存放对象数据类型

    栈中的内存会被系统回收,堆中内存需要手动释放

    堆是动态分配,没有静态分配的堆

    栈分动态分配和静态分配

    静态分配如局部变量

    动态分配类似于alloc

    为了访问堆(heap)中的数据,至少要有一个保存在stack中的指针

    Stack是低位扩展,一般不超过1MB,越用越少

    Heap是高位扩展,内存取决于虚拟内存,越用内存越大

    Stack是哪个创建的就是哪个的,没有引用计数器概念,如局部变量

    Heap对象才会采用引用计数方式管理

    当栈的剩余空间小于申请的空间就会发生栈溢出,队列

    Heap是链表存储

    ****************************

    类似于nsstring,nsarray 的不可变对象都是存入栈中的,即申请空间固定

    nsmutablestring之类的是可变对象,是存放在堆的

    ****************************

    个人理解:在函数中alloc一个对象,那么该对象的引用在栈中,内存在堆中

    相关文章

      网友评论

          本文标题:OC中堆栈详解

          本文链接:https://www.haomeiwen.com/subject/bitjdqtx.html