1,強(qiáng)引用(strong referenced):StrongReference 是 Java 的默認(rèn)引用實(shí)現(xiàn), 它會(huì)盡可能長時(shí)間的存活于 JVM 內(nèi), 當(dāng)沒有任何對象指向它時(shí) GC 執(zhí)行后將會(huì)被回收
2,弱引用(WeakReference):當(dāng)所引用的對象在 JVM 內(nèi)不再有強(qiáng)引用時(shí), GC 后 weak reference 將會(huì)被自動(dòng)回收
WeakHashMap 使用 WeakReference 作為 key, 一旦沒有指向 key 的強(qiáng)引用, WeakHashMap 在 GC 后將自動(dòng)刪除相關(guān)的 entry
3,軟應(yīng)用(soft referenced):SoftReference 于 WeakReference 的特性基本一致, 最大的區(qū)別在于 SoftReference 會(huì)盡可能長的保留引用直到 JVM 內(nèi)存不足時(shí)才會(huì)被回收(虛擬機(jī)保證), 這一特性使得 SoftReference 非常適合緩存應(yīng)用
4,內(nèi)存緩存(LruCache):常用于緩存bitmap,實(shí)現(xiàn)方式是[LinkedHashMap]保存最近引用的對象,并且在緩存超出設(shè)置大小的時(shí)候剔除(evict)最近最少使用到的對象。
5,Disk Cache(磁盤緩存):