Java-使用final和不使用final,这两种设计方式有什么不同?
最近在看afinal这个开源项目的源码,其中一个函数的写法让我有点疑惑:
/**
* Get from memory cache.
*
* @param data Unique identifier for which item to get
* @return The bitmap if found in cache, null otherwise
*/
public Bitmap getBitmapFromMemCache(String data) {
if (mMemoryCache != null) {
final Bitmap memBitmap = mMemoryCache.get(data);
if (memBitmap != null) {
return memBitmap;
}
}
return null;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
final,static等还是会带来性能的提升的,只不过现在桌面和服务器计算已经不是资源有限的场景了,所以很多app倾向于关注功能而不是性能。
在一些嵌入式场合还是要精打细算的.
1、fianl的引用的变量放在常量池中的。
2、就是从语法上约束了变量的一致性。例如在方法中调用内部内,传递的参数必须是final的,就是出于此目的。
从上述的例子来看,这两种写法没什么区别!
如果没有任何上下文环境,就单纯讨论这两个方法.第一个方法较第二个相比,没有任何好处,而且有些画蛇添足.这段代码应该是比较久远了,final主要起了虚拟机优化的作用,但是以现在的眼光来看,毫无意义.