有什么区别final static int x = 1;和static final int x=1?换句话说,java编译器x在两种情况下都会以完全相同的方式表示吗?
编辑:编译器在静态和最终方面有任何优先级或优先级吗?
没有语义差异.来自JLS(§8.3.1字段修饰符):
Run Code Online (Sandbox Code Playgroud)FieldModifier: one of Annotation public protected private static final transient volatile如果两个或多个(不同的)字段修饰符出现在字段声明中,则通常(尽管不是必需的)它们按照与上面在FieldModifier的制作中显示的顺序一致的顺序出现.
因此,优选的形式是
static final int x=1;
Run Code Online (Sandbox Code Playgroud)