java - Java - “同步”和“最终”方法,声明排序
问题描述
我有一个关于方法的同步和最终排序的问题。以下两者都被编译器接受,但它们之间有什么实际区别吗?
public synchronized final void update() {
// Do stuff
}
public final synchronized void update() {
// Do stuff
}
解决方案
如果两个或多个(不同的)方法修饰符出现在方法声明中,尽管不是必需的,但习惯上它们的出现顺序与上面在 MethodModifier 的产生式中显示的顺序一致。
并且生产 MethodModifier 顺序指定为(请参阅我提供的 JLS 链接):
MethodModifiers:
MethodModifier
MethodModifiers MethodModifier
MethodModifier: one of
Annotation public protected private abstract
static final synchronized native strictfp
所以 JLS 指定了它synchronized
并且final
可以以任何顺序出现。
因此,您的问题的答案是:没有区别。
推荐阅读
- linux - 如何在 .NET Core 中仅使用 Kestrel
- java - 使用 Java 扫描文件并根据其内容过滤它们(Backslicing)
- angular - 如何部署在 Node 中创建的 SaS 应用程序作为后端和 Angular 作为前端
- r - R唯一命令和表命令不一致
- typescript - 缩小作为 keyof 类型的泛型类型而不指定泛型参数
- javascript - React-native 无法渲染任何数据,
- spring-boot - 如何在 Spring Boot 应用程序内部扫描注释以及后处理器如何工作?
- java - 如何在我创建的目录中创建文本文件(Android 外部存储)
- java - 如何从存储为文件的 Parse-server 加载图像并使用 Java 将其显示到 Android-Studio 中的自定义 ListView?
- python - 斐波那契数列/数动态规划