国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

ListView優(yōu)化為何ViewHolder用static類

2019-11-09 16:24:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

ListView優(yōu)化為何ViewHolder用static類

如果有人還不了解ViewHolder為什么可以起到優(yōu)化作用,

我這邊再做下簡(jiǎn)單說(shuō)明:

Android的findViewById動(dòng)作是比較耗時(shí)的,需要遍歷布局的樹(shù)形結(jié)構(gòu),才能找到相應(yīng)的視圖。所以如果想在這一塊進(jìn)行優(yōu)化,我們就需要把find過(guò)后的內(nèi)容進(jìn)行緩存,所以就用ViewHolder的方法。

這個(gè)方法很容易理解,但是可能有些人還是比較較真,就像我,這樣可以起到緩存作用,那為什么內(nèi)部類非得要聲明成static的呢,普通的內(nèi)部類不是也起到這樣的效果嗎?這個(gè)疑問(wèn)也困擾了我很久。知道我看了《Effective java》這本書(shū),才解開(kāi)我這個(gè)困惑,原來(lái)這不是Android的優(yōu)化,而是Java提倡的優(yōu)化。

《Effective Java》第22條 優(yōu)先考慮靜態(tài)成員類

其中有條建議:

如果聲明成員類不要求訪問(wèn)外圍實(shí)例,就要始終把static修飾符放在它的聲明中,是它成為靜態(tài)成員類,而不是非靜態(tài)成員類。

因?yàn)榉庆o態(tài)成員類的實(shí)例會(huì)包含一個(gè)額外的指向外圍對(duì)象的引用,保存這份引用要消耗時(shí)間和空間,并且導(dǎo)致外圍類實(shí)例符合垃圾回收時(shí)仍然被保留。如果沒(méi)有外圍實(shí)例的情況下,也需要分配實(shí)例,就不能使用非靜態(tài)成員類,因?yàn)榉庆o態(tài)成員類的實(shí)例必須要有一個(gè)外圍實(shí)例。

原文地址:http://blog.csdn.net/caoyang521/article/details/49847881


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 澄江县| 阿拉尔市| 柳河县| 东丽区| 措美县| 班玛县| 开阳县| 定结县| 万年县| 调兵山市| 博客| 隆回县| 铜鼓县| 北宁市| 资阳市| 新疆| 襄城县| 蓝田县| 黄大仙区| 颍上县| 永年县| 宁国市| 乐陵市| 内乡县| 于都县| 南靖县| 濉溪县| 安吉县| 抚宁县| 咸宁市| 正镶白旗| 杭锦旗| 富源县| 建瓯市| 文昌市| 探索| 都匀市| 元氏县| 建德市| 抚松县| 科技|