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

Sha*_*han 0 java static final

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

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

cow*_*wls 9

编译器以相同的方式表示它们没有区别.

这只是个人偏好,我亲自使用static final,这是我通常看到的其他开发人员使用的.


NPE*_*NPE 6

没有语义差异.来自JLS(§8.3.1字段修饰符):

FieldModifier: one of
     Annotation public protected private
     static final transient volatile
Run Code Online (Sandbox Code Playgroud)

如果两个或多个(不同的)字段修饰符出现在字段声明中,则通常(尽管不是必需的)它们按照与上面在FieldModifier的制作中显示的顺序一致的顺序出现.

因此,优选的形式是

static final int x=1;
Run Code Online (Sandbox Code Playgroud)