iOS中创建对象的步骤: 1,分配内存空间,存储对象 2,初始化成员变量 3,返回对象的指针地址第一:非ARC机制:1,对象在创建完成的同时,内部会自动创建一个引用计数器,是系统用来判断是否回收对象的唯一标示,当我们的应用计数retainCount = 0的时候,系统会回收当前对象2,[对...
分类:
移动开发 时间:
2015-02-28 22:58:29
阅读次数:
284
范围:任何继承了NSObject的对象,对基本数据类型无效原理:每个对象内部都保存了一个与之相关联的整数,称为引用计数器当使用alloc,new或者copy创建一个对象时,对象的引用计数器被设置为1给对象发送一条retain消息,可以使引用计数器值+1给对象发送一条release消息,可以使引用计数...
分类:
其他好文 时间:
2015-02-05 09:21:57
阅读次数:
124
在oc中内存管理方法十分的严谨,OC确实强大!在Xcode中能够自动管理内存的功能,叫做ARC。但是还是要知道怎么手动管理内存。在使用对象时,系统会对该对象(object)的引用计数器进行加1操作(retain),然而只有当对象的引用计数器等于0时系统才会回收该对象,所以为了防止内存泄露必须在不.....
分类:
其他好文 时间:
2015-02-04 00:30:00
阅读次数:
158
看吕大的书,其中对mutex的介绍让人心动,因此我做一次搬运工。mutex与latch区别:mutexlatch没有等待队列,没有持有队列,抢占机制使用队列spin255次,在spin期间无法获得,转入睡眠,自己醒来spin2000次,在spin期间无法获得,转入睡眠,等待唤醒使用引用计数器(referencecou..
分类:
其他好文 时间:
2014-12-30 11:58:04
阅读次数:
182
一、垃圾回收用到的主要算法
1.引用计数法
算法思路:
给对象中添加一个引用计数器,每当有一个地方引用他时,计数器值就加1;当引用失效时,计数器值就减1;当计数器的值为0时就可以把该对象删除。
算法优点:
实现简单,判定效率高
算法缺点:
难以解决对象之间相互循环引用的问题。
2.标记清除法
算法思路:
算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标...
分类:
其他好文 时间:
2014-12-17 21:03:11
阅读次数:
161
Android中通过引用计数来实现智能指针,并且实现有强指针与弱指针。由对象本身来提供引用计数器,但是对象不会去维护引用计数器的值,而是由智能指针来管理。要达到所有对象都可用引用计数器实现智能指针管理的目标,可以定义一个公共类,提供引用计数的方法,所有对象都去继承这个公共类,这样就可以实现所有对象都...
分类:
移动开发 时间:
2014-12-09 00:31:32
阅读次数:
290
判断哪些对象可回收GC是通过对象是否存活来决定是否进行回收,判断对象是否存活主要有两种算法:引用计数算法、可达性分析算法引用计数算法引用计数的算法原理是给对象添加一个引用计数器,每被引用一次计数器加1,引用失效时减1,当计数器0后表示对象不在被引用,可以被回收了,引用计数法简单高效,但是存在对象之间...
分类:
其他好文 时间:
2014-12-07 21:31:01
阅读次数:
188
堆中几乎存放着Java世界中所有的对象实例,垃圾收集器在对堆回收之前,第一件事情就是要确定这些对象哪些还“存活”着,哪些对象已经“死去”(即不可能再被任何途径使用的对象)
1.引用计数算法
很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1;任何时刻计数器都为0的对象就是不可能再被使用的。
引...
分类:
编程语言 时间:
2014-12-05 19:28:36
阅读次数:
252
1、概述2、对象已死吗?引用计数器 给对象添加一个引用计数器,每当有引用时,计数器加1,引用失效时,计数器减1;任何时刻计数器为0的对象就是不可能再被使用的。 若对象是循环引用,则无法处理。JVM不使用。可达性分析算法 通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜...
分类:
编程语言 时间:
2014-12-03 00:12:31
阅读次数:
181
一、nil我们给对象赋值时候,一般会使用object=nil标示我向吧这个对象释放掉:或者对象由于某种原因,经过多次release,于是对象引用计数器为0了,系统将这块内存释放掉,这个时候这个对象为nil,我们称它为“空对象”。(注意:我们这里强调的是“空对象”,下面我们会拿他和..
分类:
其他好文 时间:
2014-11-19 02:06:13
阅读次数:
178