内存五大区
- 在iOS开发中,平常大家都会说,
堆区,栈区,都是存在虚拟内存。今天来浅谈一波存在虚拟内存的五大区
- 在iOS开发中,平常大家都会说,
- 内存五大区包括:
堆区、栈区、全局区、常量区、代码区
- 内存五大区包括:
1.1. 栈区
-
栈区由编译器分配和释放,存放程序临时创建的函数,局部变量等。是一块连续的内存空间。(由于栈区比较小,所以弥足珍贵)
1.2. 堆区
-
堆区由程序员分配和释放。存放运行中被动态分配的内存段,堆区的内存区域不连续(类似于链表结构)。所以容易产生内存碎片化。
1.3. 全局静态区
-
全局静态区是编译时分配的内存空间,在程序运行过程中,此内存中的数据一直存在,程序结束后由系统释放
1.4. 常量区
-
常量区是编译时分配的内存空间,在程序结束后由系统释放。存放的是常量,是一块特殊的区域
1.5. 代码区
-
代码区存放函数的二进制代码(只读)