Java 修饰符(抽象、最终、公共、静态等)的合理顺序是什么?

Java 修饰符的合理顺序是什么?

  • 摘要
  • 期末考试
  • 本地人
  • 二等兵
  • 受到保护
  • 公众人士
  • 静电干扰
  • 严格遵守
  • 同步
  • 暂时的
  • 反复无常

更新

我已经把 建议的措辞改为 合情合理,以便平静下来的讨论,无论顺序是否建议。

78288 次浏览

根据 Java 虚拟机规范,表4.4使用订单是合理的

  • 公众人士
  • 受到保护
  • 二等兵
  • 摘要
  • 违约
  • 静电干扰
  • 期末考试
  • 暂时的
  • 反复无常
  • 同步
  • 本地人
  • 严格遵守

Java 语言规范(而不是 Java 虚拟机规范)中提到了修饰符的 习惯了使用顺序,例如,对于 类修饰符,您可以找到以下定义(摘录) :

ClassModifiers:
ClassModifier
ClassModifiers ClassModifier


ClassModifier: one of
Annotation public protected private
abstract static final strictfp

[....]

如果一个类声明中出现两个或两个以上(不同的)类修饰符,那么通常(尽管不是必需的) ,它们按照与上面 ClassModfier 产品中所示顺序一致的顺序出现。(段落底部的小文本!)

你可以在其他几个指定修饰语用法的地方找到这个句子,比如字段修饰语的 给你

更新 : 我将“指定/推荐”替换为“习惯”,以使这个答案可以接受。如果你读了评论,考虑到这一点; ——(感谢@EJP 使这一点明确)——然而,推荐使用 习惯了订单。

Google 还建议使用 Java 规范中提到的惯例顺序

public / protected / private
abstract
static
final
transient
volatile
synchronized
native
strictfp

更新 : OpenJDK 社区中的项目有了一个新的“ Java 风格指南”计划。它还推荐使用 修饰词顺序修饰词顺序,并且还包括 Java8的新 违约修饰符。

public / private / protected
abstract
static
final
transient
volatile
**default**
synchronized
native
strictfp

我使用两个规则来记住修饰符序列,但是不包括 strictfp,因为我从未使用过它。仅供参考。

  1. 同步的本地人是最不重要的人。

  2. 作为 FTV: 作为观看 FTV (法国电视台)。

:)

基于它们的 int 值。

修饰符(Java 平台 SE 8)

  • 1: 公众
  • 二等兵
  • 4: 受保护
  • 8: 静电干扰
  • 16: 决赛
  • 32: 同步
  • 64: 不稳定
  • 128: 暂时的
  • 256: 本地人
  • 512: 界面
  • 1024: 摘要
  • 2048年: