我对方法的finally和final的顺序有疑问。以下两项均被编译器接受,但是它们之间是否有实际区别?
public synchronized final void update() {
// Do stuff
}
public final synchronized void update() {
// Do stuff
}
最佳答案
从JLS 8.4.3:
如果在方法声明中出现两个或多个(不同的)方法修饰符,则按惯例(尽管不是必需的),它们的出现顺序与上面在MethodModifier生产中显示的顺序一致。
并将生产MethodModifier订单指定为(请参阅我提供的JLS链接):
MethodModifiers:
MethodModifier
MethodModifiers MethodModifier
MethodModifier: one of
Annotation public protected private abstract
static final synchronized native strictfp
因此,JLS指定
synchronized
和final
可以按任何顺序出现。因此,您的问题的答案是:没有区别。