强引用是用等号来表示,系统不会因为内存不够而对强引用进行回收;
软引用可以形象成一个用来装对象的袋子,而这个袋子里的东西在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集合,可以自动删除对象,在构造的时候会指定尺寸,超出尺寸的会删除