判断对象是否存活 引用计数 假如对象被引用,则计数加1,计数为0时回收。但是存在循环引用问题:A引用B,B引用A,导致AB永远不能被回收。 可达性分析(JAVA采用的算法) 从GC Root出发看某个对象是否可达。假如不可达,则回收。 GC Root:存活时间很长的对象,有存在意义的对象。 虚拟机栈 ...
分类:
其他好文 时间:
2020-07-21 11:37:02
阅读次数:
74
iOS中解决NSTimer循环引用问题 NSTimer使用不当就会造成内存泄漏,比如常见的使用方法: //定义 @property (nonatomic, strong) NSTimer *timer; //实现 self.timer = [NSTimer scheduledTimerWithTim ...
分类:
移动开发 时间:
2020-06-15 14:20:41
阅读次数:
99
20、weak_ptr弱引用的智能指针 0、课前秀 + 弱引用指针weak_ptr是用来监视shared_ptr的,不会使引用计数加1,它不管理shared_ptr内部的指针,主要是为了监视shared_ptr的生命周期。 + weak_ptr没有重载操作符 和` `,因为它不共享指针,不能操作资源 ...
分类:
编程语言 时间:
2020-05-25 19:15:37
阅读次数:
66
众所周知,我们在使用NSTimer或者CADisplayLink的时候,经常会导致引用它们的类不能正常释放,那是因为引用它们的类与它们之间产生了循环引用。看以下代码: self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:se ...
分类:
其他好文 时间:
2020-03-23 22:16:32
阅读次数:
95
一、 判断对象“已死” 1. 引用计数法:给对象中添加一个引用计数器,每当有一个地方引用他,计数器值+1;当引用失效,计数器 -1。计数器为0则表示,对象没有被使用。 缺陷:循环引用问题。 2. 可达性分析算法:通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过 ...
分类:
其他好文 时间:
2019-11-30 22:43:31
阅读次数:
96
驼峰命名规则:首字母小写后面单词大写。 解决json序列化时的循环引用问题 https://www.cnblogs.com/leolion/p/10585834.html ...
分类:
其他好文 时间:
2019-11-07 17:34:38
阅读次数:
113
一,引用计数 python 中的垃圾回收机制主要采用引用计数的方式来跟踪和回收垃圾; 优点:1. 简单 2. 实时性 缺点:1. 维护引用计数消耗资源 2. 循环引用 二, 标记 - 清除 光使用引用技术解决不了容器对象可能产生的循环引用问题. 例如: 所以,python 在引用计数的基础上,使用标 ...
分类:
编程语言 时间:
2019-10-26 20:50:46
阅读次数:
99
补充:垃圾回收机制、线程池和ORM缺点 1. 垃圾回收机制不仅有引用计数,还有标记清除和分代回收 1. 引用计数就是内存地址的门牌号,为0时就会回收掉,但是会出现循环引用问题,这种情况下会导致内存泄漏(即不会被用,也不会被清除,一直占着) 2. 标记清除就是有引用就画有向图,如果根对象不能通过边达到 ...
分类:
编程语言 时间:
2019-10-09 23:55:14
阅读次数:
158
看过一次spring公开课,记录一下bean的循环引用问题。 问题: public class IndexService{ @Autowired IndexDao indexDao; } public class IndexDao{ @Autowired IndexService indexServ ...
分类:
编程语言 时间:
2019-08-14 21:54:00
阅读次数:
103
面试问题: 1.python的垃圾回收机制:主要使用引用计数(reference counting)来跟踪和回收垃圾。在引用计数的基础上,通过“标记 清除”(mark and sweep)解决容器对象可能产生的循环引用问题,通过“分代回收”(generation collection)以空间换时间的 ...
分类:
编程语言 时间:
2019-08-13 20:59:40
阅读次数:
109