View mView;
.........
private void performTraversals() { // cache mView since it is used so much below... final View host = mView; .... }
在查看android源码时,注意到这个方法里的这行注释,意思是“由于这个mView对象后面会频繁使用,故在此做缓存”。这个说法很早就听说过,应该是可以加快程序的运行,但我的疑问是他的原理是什么?求讨论,求教育!
不会 java.
查到:
final关键字就起作用了,该关键字允许内部类产生隐式的“闭包”,闭包将使得局部变量脱离它所在的方法继续存在。
http://huangfeinetjava.iteye.com/blog/1179852
你google 下 "final 缓存"
怎么说呢,某些情况下使用final的确是可以提升一些性能,final的意思是他的内容在第一次赋值之后就不会再次被改变,编译器根据这个特性可以对变量进行内联操作,内联某种程度上是可以提升性能的。很多情况下会对int double等一些变量类型使用final,比起包类型,final后做内联性能是有提升的。
这跟单例模式有啥关系啊,可能我这个问题问的不清楚