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