OC中的内存管理

6 篇文章 0 订阅
1 篇文章 0 订阅

OC中的内存管理

内存管理:

软件运行时对计算机对计算机内存资源的分配和使用的技术,主要目的是高效快速的分配并且在适当的时候释放回收内存资源.

内存分区(五大区域)

栈区 -- 存放局部变量,临时变量

堆区 -- 程序运行过程中,动态分配的内存,由程序员来管理

BSS区 -- 未初始化的全局变量和静态变量

数据段 -- 已经初始化的全局变量和静态变量

代码段 -- 程序编译产生的二进制的数据


OC中内存管理的范围:

管理任何继承NSObject对象,对其他基本数据类型无效;

原因:OC对象存放于堆区,非OC对象一般存放在栈中(栈内存会被系统自动回收)


OC三种内存管理方式:

MRC: 手动管理机制(iOS4.1之前的版本项目)

ARC:  自动引用计数(iOS4.1之后推出的)

垃圾回收:  iOS不支持垃圾回收故不作说明;


MRC内存管理原则:

当某个对象还在被使用,那么这个对象就不会被回收;

当使用这个对象,那么就应该让这个对象的引用计数器+1;

当不需要使用这个对象时,应该让对象的引用计数器-1;

内存管理所研究的内容就是野指针和内存泄露问题;

关于MRC内存管理机制已经渐渐被抛弃,在这里也不作详细说明了,有兴趣的可以上网查阅一些关于MRC方面分析的文章吧.

ARC:

ARC机制下引入了自动释放池@autoreleasepool这个概念.比较简单,简单到不知道怎么说了

参考http://www.cnblogs.com/caishuhua226/archive/2012/12/23/2830331.html

ARC开发机制下就永远脱离了retain、release了;

原则:只要没有强指针指向对象,对象就会被自动释放;(在这里需要了解强弱指针的基本知识)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值