iOS 内存的几大区域

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

猜你喜欢

热点阅读