局部方法的形参定义为final,是否会提升程序的性能?

发现有个同事总喜欢将局部方法的参数全部定义为final的,如:
[code="java"]public static void debug(final Logger logger, final boolean enableCheck, final Object message, final Throwable t){}[/code]
在方法体中也并没有用到内部类。
我想问的是这样的写法对程序的性能是有有影响?如果有,有什么影响,为什么?
我只知道final修饰基本类型,会在编译器优化掉。

final并不会给整个程序带来性能的提升,你同事这么做的目的可能只是为了防止别人随意修改参数的值。。。
具体你可以问问你同事,这个可以沟通。。。

下面两份代码生成的字节码是完全相同的。

public class Test {
public void test(String aaa) {
}
}

public class Test {
public void test(final String aaa) {
}
}

如果不存在内部类的话,局部变量(或者参数)上修饰的final只是在
编译期有效。字节码是不包含此信息的,所以和运行效率一点关系也没。

对于编译期的影响,final用来限制对变量的再次赋值。
这可能是一种编程习惯---一般总是保持函数入口参数不变。
另外,对阅读代码的人,可能会清晰一点。
(其实也未必,现在的IDE工具,都有标识符高亮的功能,想看到哪个变量
都用于什么地方了,高亮后,被使用的地方就一目了然了)