- 栈区(stack)
栈区由编译器自动分配并释放,存放函数的参数值,局部变量等。栈是系统数据结构,对应线程/进程是唯一的。优点是快速高效,缺点是有限制,数据不灵活。先进先出。
局部变量和方法调用的实参都是保存在栈区的。 - 堆区(heap)
堆区由程序员分配和释放,如果程序员不释放,程序结束时,可能会由操作系统回收,比如 iOS 中 alloc 都是存放在堆中的。优点是灵活方便,数据适应面广泛,但是效率有一定降低。 - 全局区(静态区)(static)
全局变量和静态变量的存储是放在一起的,初始化的全局变量和静态变量存放在一块区域,未初始化的全局变量和静态变量在相邻的另一颗区域,程序结束后由系统释放。 - 文字常量区
文字常量区存放常量字符串,程序结束后由系统释放。 - 代码区
代码区存放函数的二进制代码。程序编译链接后的二进制可执行代码。
iOS 内存的几大区域
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...