【问题标题】:final static vs static final variables [duplicate]最终静态与静态最终变量[重复]
【发布时间】:2013-06-17 19:14:45
【问题描述】:

我有以下编译代码:

final static String test = "A";
static final String test2 = "B";

一切都编译得很好。我的问题是,这两者有什么区别?

【问题讨论】:

  • 简而言之,它们可以按任意顺序使用,没有技术差异,因为这里有几个其他答案并由指定的链接状态引用。
  • 根据 JLS 首选静态 final!

标签: java static final


【解决方案1】:

The order of those modifiers isn't mandatory, as stated in the Java Specification

字段修饰符: 字段修改器 字段修饰符字段修饰符

FieldModifier:其中之一 注释公共保护私有 静态最终瞬态易失

但请注意,Java 规范引入了最佳实践:

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

这意味着最正确的解决方案是

static final String test2 = "B";

事实上,大多数程序员都尊重这种“习惯”,这意味着他们的程序员同事可以更快、更轻松地解析和阅读代码。

【讨论】:

    【解决方案2】:

    没有区别。您输入关键字的顺序无关紧要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      • 2017-07-10
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 2020-12-11
      • 2013-09-30
      相关资源
      最近更新 更多