美文网首页
iOS 内存的几大区域

iOS 内存的几大区域

作者: ChancePro | 来源:发表于2018-12-10 22:58 被阅读11次
    1. 栈区(stack)
      栈区由编译器自动分配并释放,存放函数的参数值,局部变量等。栈是系统数据结构,对应线程/进程是唯一的。优点是快速高效,缺点是有限制,数据不灵活。先进先出。
      局部变量和方法调用的实参都是保存在栈区的。
    2. 堆区(heap)
      堆区由程序员分配和释放,如果程序员不释放,程序结束时,可能会由操作系统回收,比如 iOS 中 alloc 都是存放在堆中的。优点是灵活方便,数据适应面广泛,但是效率有一定降低。
    3. 全局区(静态区)(static)
      全局变量和静态变量的存储是放在一起的,初始化的全局变量和静态变量存放在一块区域,未初始化的全局变量和静态变量在相邻的另一颗区域,程序结束后由系统释放。
    4. 文字常量区
      文字常量区存放常量字符串,程序结束后由系统释放。
    5. 代码区
      代码区存放函数的二进制代码。程序编译链接后的二进制可执行代码。

    相关文章

      网友评论

          本文标题:iOS 内存的几大区域

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