MRC(手动管理内存): 1、如果使用了alloc、new、copy、retain必须使用release、autorelease来释放这个内存 2、alloc产生一个新对象,把新对象的引用计数器设置为1,retain保留对象,使对象的引用计数器+1,release使对象的引用计数器-1 3、当对象的 ...
分类:
其他好文 时间:
2016-04-26 17:28:13
阅读次数:
127
在阅读《Thinking in Java》一书中,简单记录一下其中的垃圾回收机制的类型和原理。 1、引用计数 每个对象都有一个引用计数器,当引用连接着对象,引用计数器+1,当引用离开作用域或者为null时,引用计数器-1。当计数器为0时,释放对象占用的空间。缺陷:如果对象存在循环引用就会出现“对象应 ...
分类:
其他好文 时间:
2016-04-23 19:52:58
阅读次数:
122
1.堆空间里的内存是系统自己管理与回收,栈区的数据一般不用自己去管,系统会自动回收
1>每个OC对象内部有4个字节的存储空间来存储引用计数器
2>main函数有一个循环
3>retain 调用返回对象本身
4>野指针和空指针:指向不可用内存的指针的指针是野指针
5>EXC_BAD_ACCESS:访问了一块坏的内存(已经被回收,已经不可用的内存)
p = ni...
分类:
其他好文 时间:
2016-04-22 20:32:33
阅读次数:
221
一、引用计数机制: 一、引用计数机制: 通过给每个对象维护一个引用计数器,记录该对象当前被引用的次数。 当对象增加一次引用时,计数器加1;而对象失去一次引用时,计数器减1;当引用计数为0时,标志着该对象的生命周期结束,自动触发对象的回收释放。 引用计数的重要规则是每一个程序片段必须负责任地维护引用计 ...
分类:
其他好文 时间:
2016-04-14 16:07:10
阅读次数:
226
曾经很是好奇,python的变量怎么这么灵活,既不用声明其类型又可以各种随便赋值,后来深入学习就感觉着实有趣。Python中数字字符串等等都是对象,1是对象,“Hello”也是对象,每个对象都知道自己的类型,每个对象都有一个引用计数器,这个引用计数器是干嘛的呢,加入把对象“h..
分类:
编程语言 时间:
2016-04-06 00:43:47
阅读次数:
225
程序的计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈侦随着方法的进入和退出而有条不紊地执行出栈和如栈操作。 判断对象是不是已经死亡的方法: 一、引用计数算法: 给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对
分类:
编程语言 时间:
2016-03-10 23:29:22
阅读次数:
223
一。变量,对象,引用: 1. 变量: 2. 对象:均包含了一个头部信息,有以下两部分内容 a.对象的数据类型, b.引用计数器:纪录当前引用货指向该对象的数量,一旦计数器被清零,该对象的内存空间就会被回收。 3. 引用:关联变量和对象之间的指针, a=3 二。共享引用,新创建对象: 1. a=3 b
分类:
编程语言 时间:
2016-03-07 16:43:18
阅读次数:
182
内存管理: MRC: 因为iPhone内存有限, 所以要对内存及时管理, iOS系统的内存管理不像C#, java等其他语言有回收机制, 所以他的内存就要程序员手动及时管理. 在开发当中1个对象被创建(alloc、new、copy)其内部会有一个引用计数器(retaincount, 默认是1), 如
分类:
其他好文 时间:
2016-03-02 00:09:52
阅读次数:
192
Linux操作下String类的实现--引用计数器1.引用计数器写法一写法一个人比较喜欢叫他双指针法,因为他是在类里面创建了两个指针来实现的一个是指针_str,另外一个是用来保存指向同一块空间个数的指针_pRefCount.classString
{
public:
String(char*str="")
:_str(newchar[strlen(s..
分类:
编程语言 时间:
2016-02-28 17:00:53
阅读次数:
219
目前实现智能管理内存的技术,一是引用计数,一是垃圾回收。 引用计数:是一种很有效的机制,通过给没个对象维护一个引用计数器,记录该对象当前呗引用的次数。当对象增加一次引用时,计数器加1;而对象失去一次引用时,计数器减1;当引用计数为0时,标志着该对象的生命周期结束,自动触发对象的回收释放。引用计数的重
分类:
其他好文 时间:
2016-02-27 20:43:29
阅读次数:
276