ListView优化为何ViewHolder用static类
来源:互联网 发布:谢谢爷爷 知乎 编辑:程序博客网 时间:2024/06/05 08:46
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
0 0
- ListView优化为何ViewHolder用static类
- ListView优化为何ViewHolder用static类
- 为何ViewHolder用static类
- android ListView的优化之 static ViewHolder
- ListView 优化之---ViewHolder static修饰符
- listview优化为什么要static class ViewHolder
- 使用ViewHolder优化ListView
- Android - ViewHolder优化ListView
- listview的优化---viewHolder
- Android ViewHolder 优化 ListView
- ListView的优化--ViewHolder
- listView 优化 -ViewHolder
- listview优化,viewHolder ,分页
- ViewHolder优化listview
- ListView优化--ViewHolder
- ListView优化之ViewHolder
- 使用ViewHolder优化ListVIew
- ListView优化-ViewHolder
- 使用Xcode和Instruments调试解决iOS内存泄露
- 数据库事务
- oracle创建数据库后创建自己的用户
- 使用PreparedStatement实现增删该查
- 第一个1000行
- ListView优化为何ViewHolder用static类
- Python---list和tuple的区别
- 【SQL调优】MYSQL使用PROCEDURE ANALYSE()优化表结构
- 双控开关接线
- Android的Fragment中onActivityResult不被调用解决方案
- CSDN第一篇 blog ————cmd命令常用记录
- iconv()函数的用法
- Loadrunner实现网络听评课系统登录脚本实例
- log4cplus将日志文件名按日期创建