1、对象的基本结构1>、每个OC对象都有自己的引用计数器,是一个整数,表示“对象别引用的次数”,即有多少人正在使用这个OC对象;2>、每个OC对象内部专门有4个字节的存储空间来存储引用计数器。2、引用计数器的作用1>、当用alloc、new或copy创建一个新对象时,新对象的引用计数器默认就是1;2...
分类:
其他好文 时间:
2015-03-21 13:47:52
阅读次数:
156
Objective--C 一 关键字1 KVC 动态设值,动态取值,类似雨java中的反射,而且私有的照样可以设置与获取2 二 函数1 retain 给对象引用计数器 + 12 release 给对象引用计数器 - 13 dealloc 销毁对象,当对象引起计数器为O时,自动调用该方法,4 au.....
分类:
移动开发 时间:
2015-03-19 09:53:08
阅读次数:
170
------- android培训、java培训、期待与您交流! ----------内存管理之二——《多对象的内存管理》1.多对象的内存管理方式:只要有人使用了这个对象,这个对象就不能被销毁;只要你想使用这个对象,就让这个对象的引用计数器的值+1(让对象做一次retain操作);当你不再使用这个对...
分类:
其他好文 时间:
2015-03-17 23:32:56
阅读次数:
211
垃圾回收的过程主要包括两部分:找出已死去的对象、移除已死去的对象。
确定哪些对象存活有两种方式:引用计数算法、可达性分析算法。
方案一:引用计数算法
给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器值减1;计数器的值为0时即表明对象已经死去(可被回收)。
优点:实现简单,判定效率高。
缺点:难解决对象之间互相引用的问题。
如:对象objA和...
分类:
编程语言 时间:
2015-03-14 23:15:26
阅读次数:
167
手动内存管理 在进行内存管理的时候要注意内存管理的准则:谁开辟内存,谁释放内存(谁污染的谁治理) 。开辟内存之后,对象的引用计数为1,只有继承自NSObject的对象才有内促管理的概念, 当对象引用计数为0的时候对象的内存会被清理。 下列关键字会开辟内存,对象引用计数器+1 alloc new co...
分类:
其他好文 时间:
2015-03-11 23:25:11
阅读次数:
159
retain 和 copy 的区别。 copy copy是通过旧对象创建一个新对象,新对象引用计数器为1,与旧对象的引用计数无关。 retain retain是创建一个指针,对象引用计数加1。retain 出来的指针和原对象的指针指向的内存地址是相同的。 如何实现copy 并不是所有对象都可以进行c...
分类:
其他好文 时间:
2015-03-11 23:22:35
阅读次数:
224
1. java的垃圾回收机制主要工作包括:确定哪些对象属于垃圾,回收无用的对象占用的空间,使堆中的存活对象紧密排列。2. Java垃圾回收的算法: 引用计数(基本不用): 当引用指向一个对象时,该对象的引用计数器+1; 当引用离开对象挥着被标记为null时,引用计数器-1; 当...
分类:
编程语言 时间:
2015-03-10 23:01:53
阅读次数:
269
Cocoa采用一种称为引用计数的技术,有时也叫保留计数。每个对象有一个与之相关联的整数,称作它的引用计数器或保留计数器。当某段代码需要访问一个对象时,该代码将该对象的保留计数器加1,表示“我要访问该对象”。当这段代码结束对象访问时,将对象的保留计数器值减1,表示它不再访问该对象。当保留计数器值为0时...
分类:
其他好文 时间:
2015-03-08 20:08:49
阅读次数:
118
1 深复制:内容拷贝,源对象和副本对象指的是两个不同的对象,源对象引用计数器不变,副本对象引用计数器为12 浅复制:指针拷贝,源对象和副本对象指的都是同一个对象,对象引用计数器+1,相当于retain3 只有不可变对象创建不可变副本(copy)才是浅复制,其它的都是深复制copy关键字的使用平时我们...
分类:
移动开发 时间:
2015-03-03 11:30:16
阅读次数:
151
五.oc的语法基础(内存管理上)1.引用计数器:在每一个对象里都有一个引用计数器,占用4个字节的空间,在一个对象创建时引用计数器的值初始化为1.*给对象发送一条retain消息,可以使引用计数器的值+1(retain方法返回对象本身)*给对象发一条release消息,则计数器的值-1*可以给对象发送...
分类:
其他好文 时间:
2015-03-01 20:58:04
阅读次数:
155