美文网首页
引用计数器

引用计数器

作者: 越天高 | 来源:发表于2019-02-22 21:35 被阅读1次
  • 系统是如何判断什么时候需要回收一个对象所占用的内存?
    根据对象的引用计数器
  • 什么是引用计数器 yyjsq.png

每个OC对象都有自己的引用计数器
它是一个整数
从字面上, 可以理解为”对象被引用的次数”
也可以理解为: 它表示有多少人正在用这个对象


2.引用计数器的作用

  • 简单来说, 可以理解为:
    引用计数器表示有多少人正在使用这个对象
  • 当没有任何人使用这个对象时, 系统才会回收这个对象, 也就是说
    当对象的引用计数器为0时,对象占用的内存就会被系统回收
    如果对象的计数器不为0,那么在整个程序运行过程,它占用的内存就不可能被回收(除非整个程序已经退出 )
  • 任何一个对象, 刚生下来的时候, 引用计数器都为1
    当使用alloc、new或者copy创建一个对象时,对象的引用计数器默认就是1

3.引用计数器的操作

  • 要想管理对象占用的内存, 就得学会操作对象的引用计数器

  • 引用计数器的常见操作

  • 给对象发送一条retain消息,可以使引用计数器值+1(retain方法返回对象本身)

  • 给对象发送一条release消息, 可以使引用计数器值-1

  • 给对象发送retainCount消息, 可以获得当前的引用计数器值

  • 需要注意的是: release并不代表销毁\回收对象, 仅仅是计数器-1

相关文章

  • 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/kzkjyqtx.html