码迷,mamicode.com
首页 > 其他好文 > 详细

内存管理(简介,引用计数器)

时间:2015-10-09 22:42:15      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

移动设备的内存及其有限,每个app所占的内存是有限制的

  

下列行为都会增加一个app的内存占用

1,创建一个OC对象

2,定义一个变量

3,调用一个函数或者方法

 

当app所占用的内存比较多时,系统会发出内存警告,这时得回收一些不需要再使用的空间。比如回收一些不需要使用的对象,变量等。

 

如果app占用内存过大:

系统可能会强制关闭app,造成闪退现象,影响用户体验。

 

所谓内存管理,就是对内存进行管理,涉及的操作有:

分配内存:比如创建一个对象,会增加内存占用

清楚内存:比如销毁一个对象,能减小内存占用

 

内存管理的管理范围

1,任何继承NSObject对象

2,对其他非对象类型无效(int,char,float,double,struct,enum等)

 

只有OC对象才需要进行内存管理的本质原因:

1,OC对象存放于堆里面。(里面内存动态回收的)

2,非OC对象一般放在栈里面(栈内存会被系统自动回收)

Car *car = [[Car alloc]init];

car为指针变量  再栈区,[Car alloc]  分配内存空间,在堆区分配空间

 

系统是如何判断什么时候需要回收一个对象所占用的内存?

根据对象的引用计数器。

什么是引用计数器?

每个OC对象都有自己的引用计数器。它是一个整数。

从字面上,可以理解为“对象被引用的次数”,也可以理解为:它表示有多少人正在用这个对象。

每个OC对象内部都有4个字节的存储空间来存放引用计数器。

 

内存管理(简介,引用计数器)

标签:

原文地址:http://www.cnblogs.com/changjinping/p/4865227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!