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