是否使用final
在方法参数中允许编译器或运行时环境更快地工作?例如,如果您有一个变量要传递给一个您知道不会被修改并按原样使用的方法,那么声明它是否更有效final
?
例子:
第一种方法应该比第二种方法更快
public int isLargerAfterTripledFaster(int num, final int limit) {
num *= 3;
return (num > limit);
}
public int isLargerAfterTripled(int num, int limit) {
num *= 3;
return (num > limit);
}
如果我可以确定我永远不想在这里传递可修改的变量,我应该采用这种技术吗?
理论上,声明一个参数final
不会产生任何影响:编译器可以足够聪明地发现你的方法不会改变limit
参数,并优化它生成的代码,就像声明该参数一样final
没有实际的声明。
通过声明方法参数可以获得的最大区别final
是在匿名类中引用该参数的能力。
另一个有用的结果是,在你之后维护你的代码的人会知道保持该参数不变是你有意识的决定,而不是巧合。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)