三级缓存之弱引用概念

 强引用是用等号来表示,系统不会因为内存不够而对强引用进行回收;

 软引用可以形象成一个用来装对象的袋子,而这个袋子里的东西在oom之前会被清空;

 弱引用和软引用概念一样,只是袋子里的东西是在系统调用GC的时候清空;

 虚引用的袋子基本为空,只是可以起到一个回收资源的作用,我自己感觉

 安卓2.3.x 之后,软引用也就成了弱引用,google推荐是LruCache


* 强可及引用  = 

 * Object o = new Object();
 * 
 * 弱可及引用 袋子 不是android中特有的,是java中的
 * Object o --》 袋子中 --》 通过袋子拿
 * 1 软引用
 *  软引用 s = new 软引用(new Object())
 *  Object o = s.get()
 *   o == null ; //false
 * ....  // 当java虚拟机中有太多对象了,内存不够用了
 *  Object o = s.get()
 *   o == null ; //true
 *   
 * 2 弱引用
  *  弱引用 w = new 弱引用(new Object())
 *  Object o = w.get()
 *   o == null ; //false
 *  System.gc();  // System.gc()此方法不一定会导致垃圾回收器执行
 *  Object o = w.get()
 *   o == null ; //true
 * 3 虚引用
 * 虚引用 x = new 虚引用(new Object())
 *  Object o = x.get()
 *   o == null ; //true
 *   
 *   google在安卓2.3.x 之后修改了软引用的机制,它和弱引用 一样,因为google不推荐这样搞
 *   google推荐是LruCache 就是一个map集合,可以自动删除对象,在构造的时候会指定尺寸,超出尺寸的会删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值