final static int x = 1;
和static final int x=1
之间有什么区别吗?换句话说,在两种情况下,java编译器都会以完全相同的方式表示x
吗?
答案 0 :(得分:9)
编译器以同样的方式表示它们没有区别。
这只是个人偏好,我个人使用static final
,这是我通常看到的其他开发人员所使用的。
答案 1 :(得分:6)
没有语义差异。来自JLS(§8.3.1 Field Modifiers):
FieldModifier: one of Annotation public protected private static final transient volatile
如果两个或多个(不同的)字段修饰符出现在字段声明中,则通常(尽管不是必需的)它们的显示顺序与上面在FieldModifier的制作中显示的顺序一致。
因此,首选形式是
static final int x=1;
答案 2 :(得分:2)
java编译器在两种情况下都以完全相同的方式表示x
答案 3 :(得分:1)
没有区别。我更喜欢使用final static int
答案 4 :(得分:0)
这来自Java语言规范§8.3.1:
FieldModifier: one of
Annotation public protected private
static final transient volatile
如果字段中出现两个或更多(不同的)字段修饰符 声明,它们出现在习惯上,虽然不是必需的 与生产中的上述顺序一致的顺序 FieldModifier。
因此,在您的情况下,两者之间没有区别。仅static final
更为习惯。