黑马程序员技术交流社区

标题: 笔记~~`内存管理 [打印本页]

作者: SUPERREN_Hao    时间: 2016-1-14 15:40
标题: 笔记~~`内存管理
/*
        为什么要进行内存管理?

        移动色别的内存空间及其有限,如果不进行有效的管理,会导致设备的内存空间不足

        苹果设备,ios对app会有内存警告

        20M 警告一次
        45M 警告一次
        120M 直接闪退

        3,内存管理的范围:

        主要时继承了NSObject类的对象?
        为什么继承了NSObjetct 类的对象需要进行内存管理
        
        因为对象存储在内存的堆区而堆区需要程序员自己去管理的空间



内存管理的原理及分类:

        1,对象的所有权及引用计数
   
    对象所有权的概念:
                                  (只有一个对象还在使用它)
        任何对象都可能拥有一个或者多个所有者,只要一个对象至少拥有一个所有者,它就会继续存在
        任何对象的所有权,谁还有拥有它 任何自己创建的对象的都归自己所有

        2,对象的引用的计数
        每个对席那个都有一个自己的引用计数起,用来保存当前对象还有多少个使用者,占用8个字节

        3,对引用计数起的操作
        给对象增加或者减少对象的所有者

        [对象 retain];可以让对象的所有者+1  计数器+1 该方法返回对象本身
        [对象 release];让对对象的所有者-1   计数器-1 (并不是代表释放对象)
        如果对象的引用计数器为0,这要释放该对象,不为0,则存在
        [对象 retainCount]    retainCount消息:获得对象当前的引用计数器值  %lu %tu

        4,对象的销毁
        当对象的引用计数器为0的时候,那么这个对象就要释放
        如果释放的时候,系统会自动的先调用了对象的dealloc方法

        Dealloc 对象的临终遗言多方法,不能手动调用

*/

作者: 有款不辩    时间: 2016-1-16 08:46
谢谢楼主,学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2