欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么掌握安卓中高級(jí)開(kāi)發(fā)面試知識(shí)點(diǎn)?緩存重點(diǎn)都在這!-創(chuàng)新互聯(lián)

前言

之前早就說(shuō)要整理一個(gè)集合方便大家,還好沒(méi)有拖到2020年
BATJ、字節(jié)跳動(dòng)面試專(zhuān)題,算法專(zhuān)題,高端技術(shù)專(zhuān)題,混合開(kāi)發(fā)專(zhuān)題,java面試專(zhuān)題,Android,Java小知識(shí),到性能優(yōu)化.線(xiàn)程.View.OpenCV.NDK等已經(jīng)上傳到了的我的GitHub

創(chuàng)新互聯(lián)主營(yíng)三門(mén)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app開(kāi)發(fā)定制,三門(mén)h5重慶小程序開(kāi)發(fā)公司搭建,三門(mén)網(wǎng)站營(yíng)銷(xiāo)推廣歡迎三門(mén)等地區(qū)企業(yè)咨詢(xún)

大家點(diǎn)擊我的GitHub地址: https://github.com/Meng997998/AndroidJX點(diǎn)下star一起學(xué)習(xí)

好了今天就跟著我來(lái),告訴你緩存重點(diǎn),一起熟練掌握安卓中高級(jí)開(kāi)發(fā)面試知識(shí)點(diǎn)!

我們都知道,幾乎所有的項(xiàng)目都做了緩存,但是緩存做的怎么樣,其實(shí)只有每個(gè)人自己知道。
緩存做的好,沒(méi)有網(wǎng)絡(luò)也能流暢的使用;再多的數(shù)據(jù)請(qǐng)求都不會(huì)出現(xiàn)卡頓延遲等待很久的情況。

程序中除了圖片緩存(三級(jí)緩存),還有信息緩存。當(dāng)用戶(hù)無(wú)法聯(lián)網(wǎng)時(shí),app會(huì)默認(rèn)顯示緩存的數(shù)據(jù)。

前言緩存方式

SQLite

下載完數(shù)據(jù)文件后,把文件的相關(guān)信息如url,路經(jīng),下載時(shí)間,過(guò)期時(shí)間等存放到數(shù)據(jù)庫(kù),把url作為唯一的標(biāo)識(shí)。下次下載的時(shí)候根據(jù)url先從數(shù)據(jù)庫(kù)中查詢(xún),如果查詢(xún)到當(dāng)前時(shí)間并未過(guò)期,就根據(jù)路徑讀取本地文件,從而實(shí)現(xiàn)緩存的效果。

文件緩存使用File.lastModified()方法得到文件的最后修改時(shí)間,與當(dāng)前時(shí)間判斷是否過(guò)期,從而實(shí)現(xiàn)緩存效果。數(shù)據(jù)格式為JSON。

緩存方式兩點(diǎn)說(shuō)明

1、不同類(lèi)型的文件的緩存時(shí)間不一樣。籠統(tǒng)的說(shuō),不變文件的緩存時(shí)間是永久,變化文件的緩存時(shí)間是大忍受不變時(shí)間。說(shuō)白點(diǎn),圖片文件內(nèi)容是不變的,一般存在SD卡上直到被清理,我們是可以永遠(yuǎn)讀取緩存的。配置文件內(nèi)容是可能更新的,需要設(shè)置一個(gè)可接受的緩存時(shí)間。

2、不同環(huán)境下的緩存時(shí)間標(biāo)準(zhǔn)不一樣。無(wú)網(wǎng)絡(luò)環(huán)境下,我們只能讀取緩存文件,為了應(yīng)用有東西顯示,沒(méi)有什么過(guò)期之說(shuō)了。

WiFi

網(wǎng)絡(luò)環(huán)境下,緩存時(shí)間可以設(shè)置短一點(diǎn),一是網(wǎng)速較快,而是流量不要錢(qián)。

3G

流量環(huán)境下,緩存時(shí)間可以設(shè)置長(zhǎng)一點(diǎn),節(jié)省流量,而且用戶(hù)體驗(yàn)也更好。

緩存時(shí)間

app中多個(gè)頁(yè)面的緩存時(shí)間是不一樣的,對(duì)實(shí)時(shí)性要求高的頁(yè)面緩存時(shí)間較短。而http消息頭中包含有緩存時(shí)間,android端無(wú)需自己記錄/規(guī)定緩存時(shí)間,讀取即可。

http協(xié)議對(duì)緩存的支持

Expires & Cache-Control

Expires響應(yīng)首部給出了響應(yīng)失效的絕對(duì)時(shí)間,這樣客戶(hù)端就可以緩存一份副本,在這個(gè)時(shí)間到期之前,

不用去詢(xún)問(wèn)服務(wù)器它是否有效了。http1.0引入。 例:Expires: Thu, 03 Oct 1997 17:15:00 GMT

Cache-Control首部用于傳輸對(duì)象的緩存信息。http1.1引入。它的值是一個(gè)緩存指令,給出了與某個(gè)對(duì)象可緩存性有關(guān)的特有指令。這個(gè)首部可以出現(xiàn)在請(qǐng)求或者響應(yīng)頭中。例如:Cache-Control: no-cache

CacheControl

有兩個(gè)字段表達(dá)響應(yīng)的過(guò)期時(shí)間:max-age和max-stale

前者表示:max-age秒內(nèi),網(wǎng)頁(yè)再有請(qǐng)求,你不要來(lái)我服務(wù)端,直接取你本地緩存的結(jié)果好了

后者表示:max-stale秒內(nèi)的請(qǐng)求,你可以使用本地緩存的,但還是要來(lái)我服務(wù)端問(wèn)問(wèn),到底行不行,當(dāng)然,這里要帶上Last Modified等信息 ,如果服務(wù)端返回了304,那說(shuō)明你本地緩存繼續(xù)用吧,我不給你響應(yīng)體200的話(huà),自然就帶上了響應(yīng)體。

Expires和Cache-Control作用一致,都是指當(dāng)前資源的有效期,控制是直接從緩存獲取數(shù)據(jù)還是重新發(fā)送請(qǐng)求到服務(wù)器取數(shù)據(jù)。

緩存算法

1、 LRU - 最近最少使用(最后訪問(wèn)時(shí)間)替換掉最近被請(qǐng)求最少的文檔。這一傳統(tǒng)策略在實(shí)際中應(yīng)用最廣。在CPU緩存淘汰和虛擬內(nèi)存系統(tǒng)中效果較好。

2、 LRU-K

LRU-K

中的K代表最近使用的次數(shù),也可以認(rèn)為是LRU-1。LRU-K的主要目的是為了解決LRU算法“緩存污染”的問(wèn)題,其核心思想是將“最近使用過(guò)1次”的判斷標(biāo)準(zhǔn)擴(kuò)展為“最近使用過(guò)K次”。相比LRU,LRU-K需要多維護(hù)一個(gè)隊(duì)列,用于記錄所有緩存數(shù)據(jù)被訪問(wèn)的歷史。只有當(dāng)數(shù)據(jù)的訪問(wèn)次數(shù)達(dá)到K次的時(shí)候,才將數(shù)據(jù)放入緩存。當(dāng)需要淘汰數(shù)據(jù)時(shí),LRU-K會(huì)淘汰第K次訪問(wèn)時(shí)間距當(dāng)前時(shí)間大的數(shù)據(jù)。如下:

怎么掌握安卓中高級(jí)開(kāi)發(fā)面試知識(shí)點(diǎn)?緩存重點(diǎn)都在這!

本文標(biāo)題:怎么掌握安卓中高級(jí)開(kāi)發(fā)面試知識(shí)點(diǎn)?緩存重點(diǎn)都在這!-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://chinadenli.net/article28/cdodcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管建站公司虛擬主機(jī)品牌網(wǎng)站設(shè)計(jì)網(wǎng)站設(shè)計(jì)公司商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站