【总结】 - OC内存管理(1)
来源:互联网 发布:医疗器械注册软件研究 编辑:程序博客网 时间:2024/05/20 19:45
由于没有垃圾回收机制,内存管理对OC来说一直是一个比较重要的内容。通过这篇文章,对内存管理相关知识做一个总结,弄清程序的内存原理,进而更深刻的认识OC程序。
内存区域探索
内存分为五大区块,分别是:
1. 栈区(存放局部变量,代码块结束后自动释放)
2. 堆区(存放对象,有程序员手动操控释放)
3. 全局区(存放全局变量,程序结束后自动释放)
4. 文字常量区(存放常量字符串,程序结束后自动释放)
5. 程序代码区(存放函数体的二进制代码)
我们研究的重点在于堆区,这个区的内存特点我把它归纳为八个大字:
生不带来,死不带去
对象的消亡
一个人,只有被所有人都遗忘的时候,他才真正死去 ——阿不思·邓布利多1
一个对象也是这样。
* 对象被创建(alloc)的时候,计数器默认计数为1
* 被调用2一次,计数器+1(retain方法)
* 被遗忘3一次,计数器-1(release方法)
* 直到计数器为0,对象真正死去——从内存中删除,成为一个僵尸对象
这时,如果原指针试图继续操纵该对象,就会发生野指针错误
# 小结从上述内容中我们发现,在新建对象、调用对象时,我们需要对对象的计数器进行retain操作在需要对象释放的时候,需要对对象进行release操作
下篇将会详细描述内存操作的场景
OC内存管理(2)
- 阿不思·邓布利多:霍格沃茨魔法学校校长,被公认为是当代最伟大的巫师。邓布利多是一级梅林勋章获得者、凤凰社创始人和保密人、国际魔法师联合会主席、威森加摩首席魔法师。 ↩
- 分为对象被创建、对象被别人调用 ↩
- 分为主动遗忘(调用者用新对象替换原对象)、被动遗忘(调用者死亡dealloc方法) ↩
0 0
- 【总结】 - OC内存管理(1)
- OC内存管理总结
- OC内存管理总结
- OC内存管理总结一:
- OC内存管理总结二:
- OC内存管理总结三:
- OC内存管理要点总结
- 【总结】 - OC内存管理(2)
- OC内存管理-1
- OC内存管理1
- OC+1-内存管理
- OC----——内存管理总结
- OC内存管理总结,清晰明了!
- OC手动内存管理的规则总结
- 《iOS总结》OC内存管理-MickyChiang
- OC内存管理总结(一)
- OC 内存管理的原则总结
- OC 基础之----内存管理总结
- 重头写一个v4l2的虚拟驱动_3
- [WCF权限控制]从两个重要的概念谈起:Identity与Principal
- 2014年年终总结:写书成长,承载收获
- PAT A1005 Spell It Right
- 模电书籍推荐
- 【总结】 - OC内存管理(1)
- Java对象的浅层复制
- hadoop实战基础篇(一)
- Android中Parcelable的使用
- 新专题探索 构建最小linux运行系统
- Java设计模式-6-模板方法模式
- Python黑客学习笔记:从HelloWorld到编写PoC(上)
- WeakHashMap的一点理解
- 关于java连接mysql数据库