您的位置:首页 > 其它

89,内存管理(一)

2015-12-14 14:11 204 查看
#import <Foundation/Foundation.h>

/*

1,内存管理的重要性

>移动设备的内存极其有限,每一个app所能占用的内存是有限的

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

-创建一个OC对象

-定义一个变量

-调用一个函数或方法

>当app所占用的内存较多的时候,系统会发出内存警告,这时得回收一些内存空间。

比如,一些不需要使用的对象,变量等

>如果app占用内存过大,系统可能会强制关闭app,造成闪退现象,影响用户体验

2,内存管理

>如何回收哪些不需要再使用的对象

-学OC的内存管

>内存管理的操作有:

-分配内存:创建对象,变量,使用方法

-清除内存:销毁对象,变量

>内存管理的管理范围

-任何继承了NSObject的对象

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

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

-OC对象存储在堆里面,需要程序员手动编码释放。若OC对象没有手动释放,只能等到程序关闭时,OC对象才被系统释放

-非OC对象一般存储在栈里面,栈内存会被操作系统自动回收

*/

@interface Car : NSObject

@end

@implementation Car

@end

int main(int argc,const
char * argv[]) {

@autoreleasepool {

int a = 10;

int b = 20;

//c存在栈里面的,Car对象是对象,存在堆里面,计数器=1

Car *c = [[Caralloc]
init];

}

//经过上一行代码后,栈里面的变量 a,b,c都被回收

//而存在堆里面的Car对象还会留在内存中,因为它的计数器=1

return 0;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: