有final static int x = 1;
和static final int x=1
之間有什麼區別?換句話說,在這兩種情況下,java編譯器是否會以完全相同的方式表示x
?最終靜態int和靜態最終int之間的區別?
編輯:是否有任何形式的優先級或優先級的編譯器對於靜態和決賽?
有final static int x = 1;
和static final int x=1
之間有什麼區別?換句話說,在這兩種情況下,java編譯器是否會以完全相同的方式表示x
?最終靜態int和靜態最終int之間的區別?
編輯:是否有任何形式的優先級或優先級的編譯器對於靜態和決賽?
沒有區別,編譯器將代表他們以同樣的方式。
這僅僅是個人喜好,我個人使用static final
,這就是我一般看慣其他開發人員。
有一個[官方風格指南](http://stackoverflow.com/a/7050276/2071828)說'靜態final'是方式去。 – 2013-03-14 12:19:26
Java編譯器代表在兩種情況下
無差異完全相同Way X受。我更喜歡使用final static int
沒有語義差別。從JLS(§8.3.1 Field Modifiers):
FieldModifier: one of Annotation public protected private static final transient volatile
如果兩個或多個(不同)字段改性劑出現在字段聲明,習慣上,雖然不是必需的,它們出現的順序與所示一致以上在FieldModifier的生產中。
因此,優選的形式是
static final int x=1;
這是從Java語言規範§8.3.1:
FieldModifier: one of Annotation public protected private static final transient volatile
如果兩個或多個(不同)字段改性劑出現在現場 聲明,這是習慣,雖然沒有要求,它們出現在 的順序與上面在 FieldModifier的生產中顯示的順序一致。
所以在你的情況下兩者沒有區別。只有static final
更習慣。
在第一個''final'之前'靜態';) – nattyddubbs 2013-03-14 12:18:51