1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      怎么掌握安卓中高級開發(fā)面試知識點?緩存重點都在這!-創(chuàng)新互聯(lián)
      前言

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

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

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

      好了今天就跟著我來,告訴你緩存重點,一起熟練掌握安卓中高級開發(fā)面試知識點!

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

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

      前言緩存方式

      SQLite

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

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

      緩存方式兩點說明

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

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

      WiFi

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

      3G

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

      緩存時間

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

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

      Expires & Cache-Control

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

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

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

      CacheControl

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

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

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

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

      緩存算法

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

      2、 LRU-K

      LRU-K

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

      怎么掌握安卓中高級開發(fā)面試知識點?緩存重點都在這!

      分享名稱:怎么掌握安卓中高級開發(fā)面試知識點?緩存重點都在這!-創(chuàng)新互聯(lián)
      當(dāng)前網(wǎng)址:http://ef60e0e.cn/article/cdodcp.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        获嘉县| 喀喇沁旗| 岳西县| 乌拉特中旗| 南涧| 田东县| 新竹市| 铁力市| 武平县| 颍上县| 武清区| 八宿县| 安福县| 北川| 灵山县| 绥滨县| 伊金霍洛旗| 双城市| 镇巴县| 晴隆县| 龙里县| 丰原市| 屏东市| 隆昌县| 高安市| 涿鹿县| 油尖旺区| 淅川县| 凤翔县| 阿坝县| 山东省| 金寨县| 平南县| 兴山县| 兴文县| 开封县| 贡觉县| 河北省| 旌德县| 佛学| 措勤县|