强引用:对于强引用对象,即使出现OOM也不会进行回收;
软引用:内存够用就保存,不够用就回收;
弱引用:无论内存是否够用,都回收(WeakHashMap);
虚引用:不能单独使用也不能通过它访问对象,虚引用必须与引用队列(ReferenceQueue)联合使用,其意义在于说明一个对象已经进入finalization阶段,可以被gc回收,用来实现比finalization机制更灵活的回收操作;
引用队列:创建引用的时候可以指定关联的队列,当GC释放对象内存的时候,会将引用加入到引用队列ReferenceQueue;
java提供了4种引用类型,在垃圾回收的时候,都有各自的特点。
用一个HashMap来保存图片的路径和相应图片对象的关联的软引用之间的映射关系,在内存不足时,JVM会自动回收这些缓存图片对象所占用的空间,从而有效地避免了OOM的问题。
Map<String, SoftReference<Bitmap>> imageCache = new HashMap<String, SoftReference<Bitmap>>();
原文:https://www.cnblogs.com/Terry-Wu/p/12577943.html