美文网首页
四大引用的学习索引

四大引用的学习索引

作者: 普通的程序员 | 来源:发表于2018-11-19 11:23 被阅读0次

关于 SoftReference 在缓存中的使用问题,Android 在官方文档 SoftReference,明确指出

Soft refeence are most often used to implement memory-sensitive caches

SoftReference 引用对象非常适合实现内存敏感的缓存

软引用对象也比较好理解,它是一个比较特殊的存在,拥有强引用的属性,又更加安全。如果有一个对象具有软引用。在内存空间足够的情况下,除非内存空间接近临界值、jvm即将抛出oom的时候,垃圾回收器才会将该引用对象进行回收,避免了系统内存溢出的情况。(前提也是对象指向不为空)因此,SoftReference 引用对象非常适合实现内存敏感的缓存,例如加载图片的时候,bitmap缓存机制。

但是在后续的官方文档又变了:

"In practice, soft references are inefficient for caching. The runtime doesn't have enough information on which references to clear and which to keep. Most fatally, it doesn't know what to do when given the choice between clearing a soft reference and growing the heap."

在实践中,软引用(soft references)在缓存中是低效的,因为runtime并没有足够的信息来判别应该清除或者保留哪个 SoftReference(持有的对象),更无法判定当 App 要求更多内存的时候,是应该清除 SoftReference,还是增大 App 的Heap。

原因
"The lack of information on the value to your application of each reference limits the usefulness of soft references. References that are cleared too early cause unnecessary work; those that are cleared too late waste memory."

关于每个引用对应用程序的价值的信息的缺乏限制了软引用的有用性。过早清除的引用会导致不必要的工作;那些清除得太晚的会浪费内存--机翻

四大引用的源码分析
https://www.jianshu.com/p/e742e80ae523

实例
https://mp.weixin.qq.com/s/h5MzWRsfRTrrH4z3QIrSzQ

扩展:softReference+LruCache优化Android缓存
https://www.jianshu.com/p/7eaa037e03c7

相关文章

  • 四大引用的学习索引

    关于 SoftReference 在缓存中的使用问题,Android 在官方文档 SoftReference,明确...

  • msyql命名规则

    1、索引 主键对应的索引和主键同名。 唯一性索引用uni_开头,后面跟表名。一般性索引用ind_开头,后面跟表名。

  • mysql索引专题考点总结

    聚集索引和非聚集索引的结构 [ 概念 ] 聚集索引, 非聚集索引, 回表 , 覆盖索引 索引用B+树存储, 假设索...

  • pandas多重索引(MultiIndex)

    建立多重索引并引用。

  • mysql 索引使用

    摘要: 引用下索引的作用:索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完...

  • Java中的引用

    原文地址:LoveDev Java中有四大引用: 强引用(Reference) 软引用(SoftReference...

  • Java四大引用

    Java四大引用:强引用,软引用,弱引用,虚引用。 一、强引用: 1、= new出来的对象就是强引用,强引用在任何...

  • 索引创建及索引用法

    数据库索引分三种:普通索引(index)、唯一索引(unique)、主键(primary key)、外建索引()、...

  • mysql索引二

    1、什么是索引? 索引是帮助数据库高效获取数据的数据结构。 2、索引的引用层次划分 唯一索引:索引列的值必须唯一,...

  • 三、Object-C ARC和弱引用

    Objective-C学习索引 一、ARC自动引用计数 1、ARC通过在编译期间自动添加合适的realese/re...

网友评论

      本文标题:四大引用的学习索引

      本文链接:https://www.haomeiwen.com/subject/acyofqtx.html