美文网首页
存储区域

存储区域

作者: QYCD | 来源:发表于2021-03-24 16:44 被阅读0次

    栈区、堆区、全局区、常量区、代码区

    栈区

    栈区由编译器自动分配和释放,存放函数参数值、局部变量。
    栈是系统数据结构,对应线程/进程是唯一的。
    优点: 快速高效
    缺点: 有限制,数据不灵活

    堆区

    由alloc、new创建的对象所分配的内存块,即程序员负责分配(alloc、new)和释放(release);MRC下,一个new就需要对应一个release,谁创建谁释放,谁引用,谁管理;ARC下,编译器会在合适位置给OC对象添加release操作,会在当前线程runloop退出或休眠时销毁这些对象。
    优点: 灵活方便,数据适应面广泛
    缺点: 效率有一定降低

    全局/静态区

    全局变量和静态变量的存储是放在一起的,初始化的全局变量和静态变量存放在同一块区域,未初始化的全局变量和静态变量在相邻的另一块区域,程序结束后由系统释放

    常量区

    存放的是常量,不允许修改,程序结束后由系统释放

    代码区

    存放函数的二进制代码,程序结束后由系统释放

    参考:
    iOS-MRC与ARC区别以及五大内存区
    iOS系统中的几大内存区域

    相关文章

      网友评论

          本文标题:存储区域

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