美文网首页
引用计数器

引用计数器

作者: MarkTang | 来源:发表于2016-01-09 00:50 被阅读168次

对象一出生引用计数器就为1
一个对象引用计数器为0时才会被释放

给一个对象发送一条retain 计数器+1
发送一个release给对象,计算器-1

dealloc方法

一般会重写dealloc方法,在这列是方法相关资源,dealloc就
//问题1:什么是引用计数器?
答:
对象被指针指向或被使用的次数
每个OC对象都有自己的引用计数器,它是一个整数,表示有多少人正在用这个对象
//问题2:引用计数器的作用?
答:
计算对象被使用次数
当使用alloc、new或者copy创建一个对象时,对象的引用计数器默认就是1
当对象的引用计数器为0时,对象占用的内存就会被系统回收
如果对象的计数器不为0,那么在整个程序运行过程,它占用的内存就不可能被回收(除非整个程序已经退出 )
//问题3:怎么操作引用计数器?
答:
给对象发送一条retain消息,可以使引用计数器值+1(retain方法返回对象本身
给对象发送一条release消息, 可以使引用计数器值-1
给对象发送retainCount消息, 可以获得当前的引用计数器值

需要注意的是: release并不代表销毁\回收对象, 仅仅是计数器-1
alloc new copy retain 会增加对象的引用计数器一次
release能减少对象的引用计数器一次
//问题4:dealloc 方法的作用?
当对象的引用计数器为0时,对象就会被释放,在对象被释放前就会调用这这个方法
对象即将被销毁时系统会自动给对象发送一条dealloc消息
(因此, 从dealloc方法有没有被调用,就可以判断出对象是否被销毁)

相关文章

  • Java 对象是否可达判定算法

    1.引用计数算法: 给对象添加一个引用计数器,每当有地方引用它时计数器加1;当引用失效时计数器减1;任何时刻计数器...

  • Object-C内存管理

    一、引用计数器和对象所有权的基本概念 1、引用计数器 每个对象都会有一个引用计数器,当引用计数器为0是,系统就会将...

  • iOS 底层 day26 内存管理 引用计数器 weak指针

    一、引用计数器 1. 引用计数器(retainCounter)保存在哪里 在 64bit 中,引用计数器可以直接存...

  • 《深入理解Java虚拟机》学习笔记(三)垃圾回收

    判断对象是否存活引用计数算法:为对象添加引用计数器,引用计数器+1,引用失效计数器-1,算法简单,效率高,很难解决...

  • 彻底理解JVM垃圾回收-基础概念理解

    引用计数法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器引用就减1;任...

  • JVM垃圾回收

    回收方法 引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器+1,当引用失效,计数器-1.任...

  • 深入理解java虚拟机读书笔记-垃圾收集算法

    判断对象是否可被回收: 1.引用计数法:给对象添加一个引用计数器,每被引用一次,计数器+1,引用失效时,计数器-1...

  • java_垃圾回收

    垃圾对象的判定 引用计数 一个对象被引用计数器加一,取消引用计数器减一,引用计数器为0才能被回收。优点:简单。缺点...

  • 第三章 垃圾收集器与内存分配策略

    对象存活判定算法 引用计数算法 原理是每个对象都有一个引用计数器,当被引用时,计数器加1,取消引用时计数器减1。计...

  • JVM垃圾回收模型

    一、垃圾判断算法 1、引用计数算法 给对象添加一个引用计数器,当有一个地方引用它,计数器加1,当引用失效,计数器减...

网友评论

      本文标题:引用计数器

      本文链接:https://www.haomeiwen.com/subject/gmxqkttx.html