0

と の間に違いはfinal static int x = 1;ありstatic final int x=1ますか? 言い換えれば、Java コンパイラxは両方のケースでまったく同じように表現しますか?

編集: static と final に関してコンパイラが持つ優先順位や優先順位はありますか?

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

2 つ以上の (異なる) フィールド修飾子がフィールド宣言に現れる場合、必須ではありませんが、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

2 つ以上の (異なる) フィールド修飾子がフィールド宣言に現れる場合、必須ではありませんが、FieldModifier の生成で上記に示した順序と一致する順序で現れるのが慣習です。

したがって、あなたの場合、2つの間に違いはありません。それだけstatic finalがより慣習的です。

于 2013-03-14T12:23:19.313 に答える