三级缓存(内存、本地、网络)

本文介绍了三级缓存机制,首先尝试从内存读取数据,若无则查找本地,再者访问网络。讨论了Java中的强引用、软引用、弱引用和虚引用,指出由于系统回收策略,现在更推荐使用LRUCache。本地缓存通过文件存储数据,访问网络后将数据保存以避免重复加载。最后提到了Android中LRUCache的使用注意事项。
摘要由CSDN通过智能技术生成

  为了保证不重复加载数据,节省用户流量。

  这里只说明原理,会在以后详细的补充代码。首先从内存读取数据,判断是否有数据,如果内存中没有读到数据就从本地中读取,本地如果也没数据,就访问网络加载数据。

 那么数据是如何在内存中缓存的呢?首先这里要介绍三种引用,强引用,软引用,弱引用。

那么什么是强引用?强引用就是直接引用,不会被系统自动回收掉。

什么是软引用?软引用就是除了我们没有地方引用,如果内存不足会被系统自动回收。

什么是弱引用?弱引用就是除了我没也没有地方引用,如果内存不足更容易被系统自动回收。还有一种虚引用,就是没有地方引用,特别容易被系统回收。

以前都是缓存在软引用中,但是谷歌更新版本,现在软引用特别容易被系统回收,不安全。

为此有一种lrucache引用,内部是一种很少使用时的算法,就是删除的是最近最少使用。

其实就是用map进行存储的,根据一定的算法移除最不常用的value。


当程序结束,内存缓存就全部清除,我们就需要本地缓存。

下面介绍本地缓存:什么是本地缓存?本地缓存就是以Url为文件名称,以网络上加载的数据为内容,存储的文件中。

当我们需要数据时,就读取文件进行解析。


如果连本地也没有数据,就访问网络加载数据。

当访问成功后,把数据存储到本地,防止重复加载两次数据,浪费流量。


下面是本找找的资料《面试宝典》,用于大家

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值