Android中弱引用和软引用的应用场景
2017-08-19 19:29
162 查看
1,弱引用
弱引用与软引用的区别在于:只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只具有弱引用的对象。主要作用:可以防止内存泄漏
使用场景:全局的Map对象用于保存某种映射的时候 一定一定要用弱引用来保存对象,因为全局变量一般是static的,他的生命周期一定长于单个对象,如果用弱引用来保存对象,当对象回收时,如果是强引用,就会发生内存泄漏。
2,软引用
如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存(下文给出示例)。主要作用:缓存
使用场景:对于Bitmap的加载,非常耗费时间,我们希望把加载过的Bitmap做缓存来节省加载的时间。
可是Bitmap非常的吃内存,我们不希望OOM,所以使用软引用,在系统内存不足时,此部分内存会被重新回收,避免OOM。
强引用-》软引用-》弱引用-》虚引用
虚引用的应用场景:使用虚引用完成对象回收后的资源释放工作。FileCleanTracker,将一个文件与一个对象关联起来,当这个对象被回收之后,把文件也删掉。
相关文章推荐
- Android中弱引用与软引用的应用场景
- 声波通信(声波传输)在iOS、Android中的应用场景深入分析(含部分声波通信源代码)
- Android commit和commitAllowingStateLoss区别及应用场景
- android launchmode(四种启动模式)应用场景及实例
- android弱引用和软应用的详解
- Android官方开发文档Training系列课程中文版:动画视图之应用场景
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- android launchmode(四种启动模式)应用场景及实例
- 【转】Android Support v4、v7、v13的区别和应用场景
- Android几种数据存储方式的应用场景
- Android Support v4,v7,v13的区别和应用场景
- android launchmode(四种启动模式)应用场景及实例
- Android之RxAndroid2、RxJava2的zip应用场景及示例
- Android Support v4、v7、v13的区别和应用场景
- Android Support v4、v7、v13的区别和应用场景
- Android Support v4、v7、v13的区别和应用场景
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- Java 软引用及在Android中的应用
- Android Support v4、v7、v13的区别和应用场景
- 【Android应用场景】Android开发邮箱APP(二)