final static int和static final int的区别



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

最新更新