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
如果在一个字段声明中出现两个或多个(不同的)字段修饰符,通常(尽管不是必需的)它们以与上述字段修饰符的生成一致的顺序出现。
因此首选的形式是
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
更习惯。