final static int和static final int之间的区别?

时间:2013-03-14 12:16:52

标签: java static final

final static int x = 1;static final int x=1之间有什么区别吗?换句话说,在两种情况下,java编译器都会以完全相同的方式表示x吗?

编辑:编译器在静态和最终方面是否有任何优先级或优先级?

5 个答案:

答案 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更为习惯。