成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何成為BAT高級(jí)開發(fā)程序員-創(chuàng)新互聯(lián)

下文主要給大家?guī)砣绾纬蔀锽AT高級(jí)開發(fā)程序員,希望這些文字能夠帶給大家實(shí)際用處,這也是我編輯如何成為BAT高級(jí)開發(fā)程序員這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

網(wǎng)站設(shè)計(jì)制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺(tái)管理系統(tǒng);成都做網(wǎng)站、網(wǎng)站制作收費(fèi)合理;免費(fèi)進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運(yùn)營(yíng)了10多年的創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司。

一.Bitmap

1、Bitmap 使用需要注意哪些問題 ?

1)要選擇合適的圖片規(guī)格(bitmap 類型): 通常我們優(yōu)化Bitmap 時(shí),當(dāng)需要做性能優(yōu)化或者防止 OOM,我們通常會(huì)使用 RGB_565,因?yàn)?ALPHA_8 只有透明度,顯示一般圖片沒有意義,Bitmap.Config.ARGB_4444 顯示圖片不清楚,Bitmap.Config.ARGB_8888 占用內(nèi)存最多。:

  • ALPHA_8 每個(gè)像素占用 1byte 內(nèi)存
  • ARGB_4444 每個(gè)像素占用 2byte 內(nèi)存
  • ARGB_8888 每個(gè)像素占用 4byte 內(nèi)存(默認(rèn))
  • RGB_565 每個(gè)像素占用 2byte 內(nèi)存

2)降低采樣率: BitmapFactory.Options  參數(shù) inSampleSize 的使用,先把 options.inJustDecodeBounds 設(shè)為 true,只是去讀取圖片的大小,在拿到圖片的大小之后和要顯示的大小做比較通過 calculateInSampleSize()函數(shù)計(jì)算 inSampleSize 的具體值,得到值之后。options.inJustDecodeBounds 設(shè)為 false讀圖片資源。

3)復(fù)用內(nèi)存: 即通過軟引用(內(nèi)存不夠的時(shí)候才會(huì)回收掉),復(fù)用內(nèi)存塊,不需要再重新給這個(gè) bitmap 申請(qǐng)一塊新的內(nèi)存,避免了一次內(nèi)存的分配和回收,從而改善了運(yùn)行效率。

4)使用 recycle()方法及時(shí)回收內(nèi)存。

如何成為BAT高級(jí)開發(fā)程序員

5)壓縮圖片

2、Bitmap.recycle()會(huì)立即回收么?什么時(shí)候會(huì)回收?如果沒有地方使用這個(gè) Bitmap,為什么垃圾回收不會(huì)直接回收?
參考回答:

通過源碼可以了解到,加載 Bitmap 到內(nèi)存里以后,是包含兩部分內(nèi)存區(qū)域的。簡(jiǎn)單的說,一部分是 Java 部分的,一部分是 C部分的。這個(gè) Bitmap 對(duì)象是由 Java 部分分配的,不用的時(shí)候系統(tǒng)就會(huì)自動(dòng)回收了

但是那個(gè)對(duì)應(yīng)的 C 可用的內(nèi)存區(qū)域,虛擬機(jī)是不能直接回收的,這個(gè)只能調(diào)用底層的功能釋放。所以需要調(diào)用 recycle()方法來釋放 C 部分的內(nèi)存

bitmap.recycle()方法用于回收該 Bitmap 所占用的內(nèi)存,接著將 bitmap 置空,最后使用 System.gc()調(diào)用一下系統(tǒng)的垃圾回收器進(jìn)行回收,調(diào)用 System.gc()并不能保證立即開始進(jìn)行回收過程,而只是為了加快回收的到來

3、一張 Bitmap 所占內(nèi)存以及內(nèi)存占用的計(jì)算
參考回答:

Bitamp 所占內(nèi)存大小 = 寬度像素 x (inTargetDensity /inDensity) x 高度像素 x (inTargetDensity / inDensity)x 一個(gè)像素所占的內(nèi)存字節(jié)大小

注: 這里 inDensity 表示目標(biāo)圖片的 dpi(放在哪個(gè)資源文件夾下),inTargetDensity 表示目標(biāo)屏幕的 dpi,所以你可以發(fā)現(xiàn) inDensity 和 inTargetDensity 會(huì)對(duì)Bitmap 的寬高進(jìn)行拉伸,進(jìn)而改變 Bitmap 占用內(nèi)存的大小。

在 Bitmap 里有兩個(gè)獲取內(nèi)存占用大小的方法。

  • getByteCount():API12 加入,代表存儲(chǔ) Bitmap 的像素需要的最少內(nèi)存。
  • getAllocationByteCount():API19 加入,代表在內(nèi)存中為  Bitmap  分配的內(nèi)存大小,代替了getByteCount() 方法。
  • 在不復(fù)用  Bitmap 時(shí),getByteCount()  和getAllocationByteCount 返回的結(jié)果是一樣的。在通過復(fù)用 Bitmap 來解碼圖片時(shí),那么 getByteCount()表示新解碼圖片占用內(nèi)存的大  小,getAllocationByteCount() 表示被復(fù)用 Bitmap 真實(shí)占用的內(nèi)存大小
4、Android 中緩存更新策略 ?
參考回答:

Android 的緩存更新策略沒有統(tǒng)一的標(biāo)準(zhǔn),一般來說,緩存策略主要包含緩存的添加、獲取和刪除這三類操作,但不管是內(nèi)存緩存還是存儲(chǔ)設(shè)備緩存,它們的緩存容量是有限制的,因此刪除一些舊緩存并添加新緩存,如何定義緩存的新舊這就是一種策略,不同的策略就對(duì)應(yīng)著不同的緩存算法

比如可以簡(jiǎn)單地根據(jù)文件的最后修改時(shí)間來定義緩存的新舊,當(dāng)緩存滿時(shí)就將最后修改時(shí)間較早的緩存移除,這就是一種緩存算法,但不算很完美

5、LRU 的原理 ?
參考回答:

為減少流量消耗,可采用緩存策略。常用的緩存算法是LRU(Least Recently Used):當(dāng)緩存滿時(shí), 會(huì)優(yōu)先淘汰那些近期最少使用的緩存對(duì)象。主要是兩種方式:

  • LruCache(內(nèi)存緩存):LruCache 類是一個(gè)線程安全的泛型類:內(nèi)部采用一個(gè) LinkedHashMap 以強(qiáng)引用的方式存儲(chǔ)外界的緩存對(duì)象,并提供 get 和 put 方法來完成緩存的獲取和添加操作,當(dāng)緩存滿時(shí)會(huì)移除較早使用的緩存對(duì)象,再添加新的緩存對(duì)象。
  • DiskLruCache(磁盤緩存):  通過將緩存對(duì)象寫入文件系統(tǒng)從而實(shí)現(xiàn)緩存效果

二.Handler

6.談?wù)勏C(jī)制 Handler 作用 ?有哪些要素 ?流程是怎樣的 ?

7.一個(gè)線程能否創(chuàng)建多個(gè) Handler,Handler 跟 Looper 之間的對(duì)應(yīng)關(guān)系 ?

8.軟引用跟弱引用的區(qū)別

9.Handler 引起的內(nèi)存泄露原因以及最佳解決方案

10.為什么系統(tǒng)不建議在子線程訪問 UI?

11.Looper 死循環(huán)為什么不會(huì)導(dǎo)致應(yīng)用卡死?

12.使用 Handler 的 postDealy 后消息隊(duì)列會(huì)有什么變化?

13.可以在子線程直接 new 一個(gè) Handler 嗎?怎么做?

14.Message 可以如何創(chuàng)建?哪種效果更好,為什么?

三.性能優(yōu)化

15.圖片的三級(jí)緩存中,圖片加載到內(nèi)存中,如果內(nèi)存快爆了,會(huì)發(fā)生什么?怎么處理?

17.WebView 的性能優(yōu)化 ?

18.Bitmap 如何處理大圖,如一張 30M 的大圖,如何預(yù)防 OOM?

19.內(nèi)存回收機(jī)制與 GC 算法(各種算法的優(yōu)缺點(diǎn)以及應(yīng)用場(chǎng)景);GC 原理時(shí)機(jī)以及 GC 對(duì)象

20.內(nèi)存泄露和內(nèi)存溢出的區(qū)別 ?AS 有什么工具可以檢測(cè)內(nèi)存泄露

21.性能優(yōu)化,怎么保證應(yīng)用啟動(dòng)不卡頓? 黑白屏怎么處理?

對(duì)于以上關(guān)于如何成為BAT高級(jí)開發(fā)程序員,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請(qǐng)繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會(huì)喜歡上這些內(nèi)容的。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章標(biāo)題:如何成為BAT高級(jí)開發(fā)程序員-創(chuàng)新互聯(lián)
分享鏈接:http://jinyejixie.com/article2/isjoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站設(shè)計(jì)網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、搜索引擎優(yōu)化、響應(yīng)式網(wǎng)站

廣告

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

小程序開發(fā)
宝清县| 高平市| 塘沽区| 滁州市| 谢通门县| 佳木斯市| 青阳县| 大悟县| 万载县| 翁牛特旗| 富裕县| 通州区| 平乡县| 萨嘎县| 郑州市| 龙胜| 三门峡市| 莱西市| 庄河市| 惠州市| 肇东市| 新化县| 大邑县| 玛纳斯县| 钟祥市| 华阴市| 博野县| 宁夏| 宣恩县| 改则县| 仁怀市| 大化| 临城县| 广平县| 通渭县| 洛川县| 灵山县| 乐至县| 应城市| 大田县| 前郭尔|