浅谈内存管理
来源:互联网 发布:php round 编辑:程序博客网 时间:2024/05/29 18:26
内存管理的实质就是管理内存, 我们通常所说的管理内存就是对堆区的内存进行管理.
内存管理机制: 内存管理采用 "引用计数机制 (retain count)'' 当一个对象被创建时(alloc) 引用计数会+1; 每增加一个所有者(retain)对象的引用计数+1, 失去一个所有者(release)对象的引用计数-1; 当对象的引用计数为0, 会调用dealloc方法,销毁对象. 其中, alloc, retain, copy 会使对象的引用计数立即+1; release 会使对象的引用计数立即-1;
autorelease 会在未来的某一时刻对对象进行释放;
内存管理原则: 引用计数的增加和引用计数的减少应当保持平衡 for example : 出现一个alloc , 就对应一个release;出现一个retain, 就对应一个release;
// alloc 在分配内存空间的同时,让它所创建的对象的引用计数为1
// alloc返回一个内存引用计数为1的对象
Student *stu = [[Studentalloc]init];
// 打印引用计数
NSLog(@"%ld", [sturetainCount]);
//让当前所调用的对象的引用计数+1
[sturetain];
NSLog(@"retain == %ld", [sturetainCount]);
//在当前的计数的基础上-1
[sturelease];
NSLog(@"retain3 == %ld", [sturetainCount]);
[stu release];
NSLog(@"retain4 == %ld", [sturetainCount]);
// 当前的引用计数为0,会自动调用dealloc方法销毁对象
[sturetain];
//野指针对象释放掉以后, 不能再对此对象进行任何操作,当前指针已经变为野指针一旦操作会crash
- linux 内存管理浅谈
- 浅谈Linux内存管理
- IOS内存管理浅谈
- 浅谈linux内存管理
- 浅谈linux内存管理
- 浅谈 Qt 内存管理
- 浅谈内存管理
- iOS内存管理浅谈
- 浅谈linux内存管理
- 浅谈iOS内存管理
- 浅谈 Qt 内存管理
- 浅谈OC内存管理
- 浅谈iOS内存管理
- 浅谈C++内存管理
- 浅谈iOS内存管理
- 浅谈内存管理
- java内存管理浅谈
- 内存管理浅谈
- poj1274
- 12-23-2014——星期二——作业练习
- Java泛型详解
- Linux——进程间通信
- 精通java的25个标准
- 浅谈内存管理
- Android游戏开发案例与关键技术
- 一个简单的迷宫游戏(有BUG)
- 生成so库的认识
- 【Unity3D】存档文件加密代码
- java基础—applet小程序
- hibernate
- Fragment 中的 onCreateOptionsMenu 方法不执行
- java指令和javac指令总结