黑马程序员:IOS面试宝典:内存管理教案.docxVIP

  • 10
  • 0
  • 约3.46千字
  • 约 7页
  • 2017-06-07 发布于湖北
  • 举报

黑马程序员:IOS面试宝典:内存管理教案.docx

内存管理 1. 为什么要进行内存管理? 因为移动设备的内存极其有限,当一个程序达到40M时, 系统会发出内存警告. 当程序达到120M时, 程序会闪退, 影响用户体验. 为了保证程序的运行流畅, 必须进行内存管理 2. 内存管理的范围? 管理所有继承自NSObject的对象, 对基本数据类型无效.?是因为对象和其他数据类型在系统中存储的空间不一样, 其他局部变量主要存储在栈区(因为基本数据类型占用的存储空间是固定的, 一般存放于栈区 ), 而对象存储于堆中, 当代码块结束时, 这个代码块所涉及到的所有局部变量会自动弹栈清空, ?指向对象的指针也会被回收, ?这时对象就没有指针指向, 但依然存在于堆内存中, 造成内存泄露. 3. 内存管理的原理是什么? 1 对象的所有权及计数 1)?. 对象所有权的概念: 任何对象都有可能拥有一个或者多个所有者, ?只要对象还有至少一个所有者, 它就会继续存在 2). ?Cocoa所有权策略: 任何自己创建的对象,都归自己所有, 可以使用retain来获取一个对象的所有权, ?可以使用”alloc”,”new”,”copy”的方法创建对象 2 对象的引用计数器 对象里面有retainCount这个实例变量 : 来标识当前有多少个东西来引用这个对象 注: 每个OC对象内部 ,都专门有一个8个字节的存储空间来存储引用计数器, 不分系统, 不管是多少位

文档评论(0)

1亿VIP精品文档

相关文档