我怀疑Java编译器或dex比没有final的局部变量更优化最终局部变量。 关于Android性能,最终变量和变量之间是否有任何区别?
感谢。
for循环:
for (final int x : list) ret += x;
的try-catch:
try { /* do something */ } catch (final IOException e) {}
功能:
void echo(final String s) { print(s); }
答案 0 :(得分:9)
我实际上看过一些来自Google Devs的视频,我记得他们在某些时候说过,当你声明你的变量test.php
时,VM知道这个变量不会改变它,它会提高性能。
当我发现时,我会添加链接。所以也许接受的答案是不正确的。
答案 1 :(得分:-1)
我认为声明final和local之间没有任何性能差异。当我们不希望某人覆盖此变量时,我们会声明变量final,因为您无法更改final变量的值(It将是常量)。此优化仅适用于基本类型和字符串常量,而不适用于任意引用类型。尽管如此,在可能的情况下声明常量静态最终是很好的做法。