final static int x = 1;
和有什么区别static final int x=1
吗?换句话说,java 编译器x
在这两种情况下会以完全相同的方式表示吗?
编辑:编译器对于静态和最终是否有任何优先级或优先级?
编译器将以相同的方式表示它们没有区别。
这只是个人喜好,我个人使用static final
,这是我通常看到的其他开发人员使用的。
没有语义差异。来自 JLS(§8.3.1 字段修饰符):
FieldModifier: one of Annotation public protected private static final transient volatile
如果两个或多个(不同的)字段修饰符出现在字段声明中,尽管不是必需的,但习惯上它们的出现顺序与上面在 FieldModifier 的产生式中显示的顺序一致。
因此,优选的形式是
static final int x=1;
java编译器在两种情况下都以完全相同的方式表示x
没有不同。我更喜欢使用final static int
这是来自 Java 语言规范§8.3.1:
FieldModifier: one of
Annotation public protected private
static final transient volatile
如果两个或多个(不同的)字段修饰符出现在一个字段声明中,尽管不是必需的,但习惯上它们的出现顺序与上面在 FieldModifier 的产生式中显示的顺序一致。
因此,在您的情况下,两者之间没有区别。只有这样static final
更习惯。