使用block要注意循环引用,因此在块中使用self前先使用__weak修饰生产弱引用 这里记录另一种情况:没有使用属性而是直接使用成员变量的时候 解决办法 ...
分类:
其他好文 时间:
2017-05-19 11:09:09
阅读次数:
129
GC中的垃圾,是指的是在内存中不在不再被使用的对象。 常见的垃圾回收算法 1.引用计数算法(无法回收循环引用的对象) 2.标记清除算法分为标记阶段和清除阶段(会产生内存的空间碎片) 3.复制算法(缺点是将系统内存折半,高效性是建立在存活对象少,垃圾对象多的前提下的) 在java新生代串行垃圾回收器中 ...
分类:
编程语言 时间:
2017-05-13 18:58:14
阅读次数:
133
1、强引用(StrongReference) 强引用是使用最普遍的引用。假设一个对象具有强引用。那垃圾回收器绝不会回收它。例如以下: [java] view plaincopyprint? Object o = new Object(); // 强引用 当内存空间不足,Java虚拟机宁愿抛出OutO ...
分类:
编程语言 时间:
2017-05-13 17:04:26
阅读次数:
214
前言 现在好多个APP里面都有验证码倒计时按钮,实现方式大概有下面几种: 1.使用线程和Handler的方式,定时刷新倒计时数字,这种方式容易导致内存泄露,所以一般都使用弱引用,控制数字的刷新。 2、自定义倒计时按钮 3、使用Android提供的CountDownTimer结合TextView实现倒 ...
分类:
移动开发 时间:
2017-05-11 01:03:27
阅读次数:
231
动态内存和智能指针 动态内存: 1.针对堆里面存放的对象 2.使用new delete运算符 3.智能指针:shared_ptr(多个指针指向同一个对象); unique_ptr(一个指针指向一个对象); weak_ptr(弱引用,管理shared_ptr) 4.标准库函数:make_shared< ...
分类:
编程语言 时间:
2017-05-07 10:23:34
阅读次数:
136
1、前面在做下载进度监听。尝试过,通过加入 弱引用的View进度条,到相应的集合。 等到要进行更新进度的时候。通过Key 获取相应的VIew来进行更新 进度条。效果是达到了,可是我们怎样来监听其它的状态呢,不好监听。 2、又想过通过每一个 下载APP。都有一个相应的List<DownloadList ...
分类:
其他好文 时间:
2017-05-01 19:04:23
阅读次数:
136
一、Java中的强、软、弱、虚引用在JDK中我们能够看到有一个java.lang.ref的包。这个包中就是Java中实现强、软、弱、虚引用的包,例如以下:PhantomReference虚引用:假设一个对象持有虚引用,就和没有持有引用一样,在不论什么时候都可能被垃圾回收器回收。虚引用主要用来跟踪对象 ...
分类:
编程语言 时间:
2017-04-24 23:11:14
阅读次数:
293
我们平常用的都是对象的强引用,如果有强引用存在,GC是不会回收对象的。我们能不能同时保持对对象的引用,而又可以让GC需要的时候回收这个对象呢?.NET中提供了WeakReference来实现。弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存。对于那些创建便宜但耗费大量内存的对象 ...
分类:
其他好文 时间:
2017-04-16 22:13:36
阅读次数:
128
下面以使用软引用为例来详细说明。弱引用的使用方式与软引用是类似的。 假设我们的应用会用到大量的默认图片,比如应用中有默认的头像,默认游戏图标等等,这些图片很多地方会用到。如果每次都去读取图片,由于读取文件需要硬件操作,速度较慢,会导致性能较低。所以我们考虑将图片缓存起来,需要的时候直接从内存中读取。 ...
分类:
其他好文 时间:
2017-04-15 23:49:41
阅读次数:
421
(转载) 编写Objective-C代码的很大一部分工作是管理可执行代码保持的对象引用,还有被引用对象保持的对另外一个对象的引用。在ARC出现之前,Objective-C在IOS中使用手动内存管理,在OS X中还可使用垃圾回收机制。这两个方法都有他们各自的优缺点。现在Objective-C使用ARC ...
分类:
其他好文 时间:
2017-04-05 01:27:03
阅读次数:
177