Java 爪哇';同步';和';最终';方法,声明顺序

Java 爪哇';同步';和';最终';方法,声明顺序,java,synchronized,final,Java,Synchronized,Final,我有一个关于方法的synchronized和final排序的问题。编译器接受以下两种情况,但它们之间有实际区别吗 public synchronized final void update() { // Do stuff } public final synchronized void update() { // Do stuff } 从: 如果一个方法声明中出现两个或多个(不同的)方法修饰符,则通常(尽管不是必需的)它们的出现顺序与上述MethodModifier产品中显示

我有一个关于方法的synchronized和final排序的问题。编译器接受以下两种情况,但它们之间有实际区别吗

public synchronized final void update() {
    // Do stuff
}

public final synchronized void update() {
    // Do stuff
}
从:

如果一个方法声明中出现两个或多个(不同的)方法修饰符,则通常(尽管不是必需的)它们的出现顺序与上述MethodModifier产品中显示的顺序一致

并且production MethodModifier订单指定为(参见我提供的JLS链接):

因此JLS指定
synchronized
final
可以以任何顺序出现


因此,你的问题的答案是:没有区别

当然,没有区别

但是有许多指南风格、框架、公司提倡的事实上的标准顺序,正如Java语言规范所建议的那样(第节和第节)


不。是什么让你认为有?它们之间没有区别。java不是c,我们不处理
const-pointer
vs
pointer-to-const
类型的困境。它们没有区别,尽管一个比另一个更好。我相信惯例是使用第二个版本。另外,您可以通过搜索所有位置的字符串快速了解JDK是如何做到这一点的,在Intellij中它真的很快。他们两者都用,似乎没有严格的惯例
MethodModifiers:
    MethodModifier
    MethodModifiers MethodModifier

MethodModifier: one of
    Annotation public protected private abstract
    static final synchronized native strictfp
public
protected
private
abstract
default
static
final
transient
volatile
synchronized
native
strictfp