A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 心若不动 中级黑马   /  2016-4-7 23:50  /  2383 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

由于移动设备内存有限,为了设备能够正常运行,因此就需要通过内存管理来维持。
1、内存分配方式:
(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行 期间都存在。例如全局变量,static变量。

(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结 束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配 的内存容量有限。

(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内 存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常 灵活,但问题也最多。

2、内存管理的范围:
        主要是对继承了NSObject的对象进行管理。基本数据类型是没有内存管理的。
        
        对象类型是程序运行过程中动态分配的,存储在堆区;内存管理主要是对 堆区中的对象的内存管理。

3 个回复

倒序浏览
你这是C语言和oc混着说的啊
回复 使用道具 举报
好混乱,五个段,自上而下分别是栈、堆、BSS段、数据段、代码段,栈存储局部变量,堆动态内存分配,需要手动管理,BSS段存放未初始化的全局变量,静态变量等,数据段存储初始化的全局变量,静态变量,常量等。代码段用来存函数或者方法
回复 使用道具 举报
我是来学习的                    
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马