首页 新闻 会员 周边 捐助

关于java中方法缓存对象的原理

0
悬赏园豆:10 [待解决问题]
   View mView;
   .........
  private void performTraversals() { // cache mView since it is used so much below... final View host = mView; .... }

    在查看android源码时,注意到这个方法里的这行注释,意思是“由于这个mView对象后面会频繁使用,故在此做缓存”。这个说法很早就听说过,应该是可以加快程序的运行,但我的疑问是他的原理是什么?求讨论,求教育!

npsngs的主页 npsngs | 初学一级 | 园豆:192
提问于:2012-04-18 10:15
< >
分享
所有回答(3)
1

不会 java.

查到:

final关键字就起作用了,该关键字允许内部类产生隐式的“闭包”,闭包将使得局部变量脱离它所在的方法继续存在。

http://huangfeinetjava.iteye.com/blog/1179852

 

你google 下 "final 缓存"

waninlezu | 园豆:661 (小虾三级) | 2012-04-18 10:42
1

怎么说呢,某些情况下使用final的确是可以提升一些性能,final的意思是他的内容在第一次赋值之后就不会再次被改变,编译器根据这个特性可以对变量进行内联操作,内联某种程度上是可以提升性能的。很多情况下会对int double等一些变量类型使用final,比起包类型,final后做内联性能是有提升的。

zsounder | 园豆:2819 (老鸟四级) | 2012-04-18 11:01
0
发表是最好的记忆 | 园豆:286 (菜鸟二级) | 2012-04-18 16:26

这跟单例模式有啥关系啊,可能我这个问题问的不清楚

支持(0) 反对(0) npsngs | 园豆:192 (初学一级) | 2012-04-18 16:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册