2013-03-14 193 views
0

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

编辑:是否有任何形式的优先级或优先级的编译器对于静态和决赛?

+2

在第一个''final'之前'静态';) – nattyddubbs 2013-03-14 12:18:51

回答

9

没有区别,编译器将代表他们以同样的方式。

这仅仅是个人喜好,我个人使用static final,这就是我一般看惯其他开发人员。

+0

有一个[官方风格指南](http://stackoverflow.com/a/7050276/2071828)说'静态final'是方式去。 – 2013-03-14 12:19:26

2

Java编译器代表在两种情况下

1

无差异完全相同Way X受。我更喜欢使用final static int

6

没有语义差别。从JLS(§8.3.1 Field Modifiers):

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

如果两个或多个(不同)字段改性剂出现在字段声明,习惯上,虽然不是必需的,它们出现的顺序与所示一致以上在FieldModifier的生产中。

因此,优选的形式是

static final int x=1; 
0

这是从Java语言规范§8.3.1

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

如果两个或多个(不同)字段改性剂出现在现场 声明,这是习惯,虽然没有要求,它们出现在 的顺序与上面在 FieldModifier的生产中显示的顺序一致。

所以在你的情况下两者没有区别。只有static final更习惯。