0

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

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

4

5 回答 5

9

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

这只是个人喜好,我个人使用static final,这是我通常看到的其他开发人员使用的。

于 2013-03-14T12:17:31.317 回答
6

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

FieldModifier: one of
     Annotation public protected private
     static final transient volatile

如果两个或多个(不同的)字段修饰符出现在字段声明中,尽管不是必需的,但习惯上它们的出现顺序与上面在 FieldModifier 的产生式中显示的顺序一致。

因此,优选的形式是

static final int x=1;
于 2013-03-14T12:19:32.787 回答
2

java编译器在两种情况下都以完全相同的方式表示x

于 2013-03-14T12:18:20.227 回答
1

没有不同。我更喜欢使用final static int

于 2013-03-14T12:19:15.983 回答
0

这是来自 Java 语言规范§8.3.1

FieldModifier: one of Annotation public protected private static final transient volatile

如果两个或多个(不同的)字段修饰符出现在一个字段声明中,尽管不是必需的,但习惯上它们的出现顺序与上面在 FieldModifier 的产生式中显示的顺序一致。

因此,在您的情况下,两者之间没有区别。只有这样static final更习惯。

于 2013-03-14T12:23:19.313 回答