【问题标题】:Difference between final static int and static final int? [duplicate]最终静态整数和静态最终整数之间的区别? [复制]
【发布时间】:2013-03-02 18:58:36
【问题描述】:

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

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

【问题讨论】:

  • 在第一个 final 之前 static ;)

标签: java static final


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

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

【讨论】:

    【解决方案3】:

    没有区别。我更喜欢使用final static int

    【讨论】:

      【解决方案4】:

      没有语义差异。来自 JLS (§8.3.1 Field Modifiers):

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

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

      因此首选形式是

      static final int x=1;
      

      【讨论】:

        【解决方案5】:

        来自 Java 语言规范§8.3.1

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-02
          • 1970-01-01
          • 1970-01-01
          • 2019-11-13
          • 1970-01-01
          • 2011-03-04
          相关资源
          最近更新 更多