2013-03-14 194 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更習慣。