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

首頁 > 學院 > 開發設計 > 正文

ListView優化為何ViewHolder用static類

2019-11-09 15:09:52
字體:
來源:轉載
供稿:網友

ListView優化為何ViewHolder用static類

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

我這邊再做下簡單說明:

Android的findViewById動作是比較耗時的,需要遍歷布局的樹形結構,才能找到相應的視圖。所以如果想在這一塊進行優化,我們就需要把find過后的內容進行緩存,所以就用ViewHolder的方法。

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

《Effective Java》第22條 優先考慮靜態成員類

其中有條建議:

如果聲明成員類不要求訪問外圍實例,就要始終把static修飾符放在它的聲明中,是它成為靜態成員類,而不是非靜態成員類。

因為非靜態成員類的實例會包含一個額外的指向外圍對象的引用,保存這份引用要消耗時間和空間,并且導致外圍類實例符合垃圾回收時仍然被保留。如果沒有外圍實例的情況下,也需要分配實例,就不能使用非靜態成員類,因為非靜態成員類的實例必須要有一個外圍實例。

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中卫市| 彰武县| 栾川县| 晋江市| 湘潭市| 台中市| 洛隆县| 米脂县| 叶城县| 澳门| 沈丘县| 裕民县| 阆中市| 兴安县| 黑龙江省| 高碑店市| 金昌市| 大冶市| 清原| 宁陕县| 外汇| 秭归县| 嘉禾县| 陇南市| 临漳县| 辽阳县| 二连浩特市| 丘北县| 若羌县| 平武县| 金川县| 正定县| 罗江县| 卢湾区| 白河县| 通州区| 沧州市| 芷江| 三穗县| 贵阳市| 隆林|