错误原因:
exc_bad_access(code=1, address=0x789870)野指针错误,主要的原因是,当某个对象被完全释放,也就是retainCount,引用计数为0后。再去通过该对象去调用其它的方法就会出现野指针错误。
例如:
Person *jerry = [[Person alloc]init]; // retainCount引用计数为1
[jerry eat];...
分类:
移动开发 时间:
2014-07-22 23:05:16
阅读次数:
372
JVM
堆中几乎存放着java中所有的对象实例,在在垃圾回收前先要判断对象是否已死,这里对对象的判断主要有:1. 引用计数法
给对象中添加一个引用计数器,每当有一个地方引用他时,计数器就加1;当引用失效时,计数器就减1。任何时间计数器为0时,对象就不可能在次使用。2. 根搜索法
通过一系列的名为GC...
分类:
其他好文 时间:
2014-05-08 12:51:57
阅读次数:
316
[iOS7的一些总结]5、iOS中的内存管理我们知道,为了更加方便地处理内存管理问题,将开发人员从繁琐的内存的分配和释放工作中解放出来而专注于产品和逻辑,iOS提供了一种有效的方法,
即自动引用计数ARC。采用了ARC之后,绝大部分内存管理的问题就不需要我们继续操心了。但是从另一个方面讲,这个方便的...
分类:
移动开发 时间:
2014-05-07 17:31:17
阅读次数:
400
本文讲述了底层引擎因为引用计数gc机制使用不当,引起内存泄漏的问题
分类:
其他好文 时间:
2014-05-06 11:05:25
阅读次数:
299
1概述对于Python这样的动态语言,如何高效的管理内存,是很重要的一部分,在很大程度上决定了Python的执行效率。与大多数编程语言不同,Python中的变量无需事先申明,变量无需指定类型,程序员无需关心内存管理,Python解释器给你自动回收。我们知道在变量分配内存时,是借用系..
分类:
编程语言 时间:
2014-05-05 12:35:04
阅读次数:
331
实现 smart_ptr 智能指针会自动地管理内存(释放不需要的内存),而不需要程序员去操心。
它能避免迷途指针(dangling pointers),内存泄漏(memory leaks), 分配失败等情况的发生。智能指针需要为所有实例维护一个引用计数,
这样才能在恰当的时刻(引用计数为0时)...
分类:
编程语言 时间:
2014-05-04 11:56:03
阅读次数:
380
ARC中block块作为属性的使用笔记block较难理解,根据在内存中的分布情况就分为3种类型,根据使用的情形又分为很多很多种。虽然用起来容易,但使用不当会造成内存泄露,虽然都是这么说,但你真的研究过为什么会泄露吗?为什么有些时候外部变量进入block的时候会导致引用计数+1呢?本人做过MRC以及A...
分类:
其他好文 时间:
2014-05-02 11:36:01
阅读次数:
281
string string = AnsiString =
长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节;
变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起始于@Str[1],@Str[1]偏移负16个字节的空间存储着字串长度、引用计数等信息。字符序列.....
分类:
其他好文 时间:
2014-05-01 14:34:10
阅读次数:
487
1.
python创建实例后,实例将由引用计数来管理,如果引用计数达到0,实例将被销毁,实例被销毁时,解释器会调用与对象相关联的__del__()方法。使用del语句可以删除对象引用,但是del语句通常不会直接调用__del()__方法。2.
特殊变量__slots__通过定义特殊变量__slots...
分类:
其他好文 时间:
2014-04-30 21:40:17
阅读次数:
441
收集一些对PHP研究较深的文章,方便平时的查阅。 1)弱类型变量实现 2)PHP的生命周期
3)变量的引用计数、写时复制(Reference counting & Copy-on-Write) 4)变量的存储方式 5)数组
6)HashTable API 7)面向对象
分类:
Web程序 时间:
2014-04-30 01:38:26
阅读次数:
565