Ste*_*n D 3 java compiler-construction variables performance final
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);
}
Run Code Online (Sandbox Code Playgroud)
如果我可以肯定我永远不想在这里传递一个可修改的变量,我应该采用这种方法吗?
从理论上讲,声明一个参数final是不会有所作为:编译器允许足够的智慧弄清楚,你的方法不改变limit参数,优化代码,它产生如同参数被宣布final没有实际申报.
通过声明方法参数,您将获得的最大区别final是能够在匿名类中引用该参数.
另一个有用的结果是,在您知道保持该参数不变的情况下维护代码的人是您有意识的决定,而不是巧合.