ListView优化中View Holder为什么用static声明为静态内部类

来源:互联网 发布:淘宝文艺女装店 编辑:程序博客网 时间:2024/04/30 03:51

ListView优化中ViewHolder要不要定义为static静态内部类?

在看面试题的,发现存在这个问题,下来百度了下,发现很纠结,涉及到了内部类对外部类的引用,静态类的生命周期等java知识,现总结如下:

 

static class ViewHolder {

   //定义listView item中相应的控件

}

 

这里的ViewHolder类需不需要定义成static,根据实际情况而定,如果item不是很多的话,可以使用,这样在初始化的时候,只加载一次,可以稍微得到一些优化;

不过,如果item过多的话,建议不要使用。因为static是Java中的一个关键字,当用它来修饰成员变量时,那么该变量就属于该类,而不是该类的实例。所以用static修饰的变量,它的生命周期是很长的,如果用它来引用一些资源耗费过多的实例(比如Context的情况最多),这时就要尽量避免使用了。

0 0