Java 修饰符的合理顺序是什么?
- 抽象的
- 最终的
- 本国的
- 私人的
- 受保护
- 上市
- 静止的
- 严格的fp
- 同步的
- 短暂的
- 易挥发的
更新
我已将措辞从推荐改为合理,以平息是否推荐该命令的讨论。
Java 修饰符的合理顺序是什么?
更新
我已将措辞从推荐改为合理,以平息是否推荐该命令的讨论。
Java语言规范(而不是Java虚拟机规范)中提到了修饰符的习惯使用顺序,例如对于类修饰符,您会发现以下定义(摘录):
ClassModifiers: ClassModifier ClassModifiers ClassModifier ClassModifier: one of Annotation public protected private abstract static final strictfp
[……]
如果两个或多个(不同的)类修饰符出现在一个类声明中,那么尽管不是必需的,但习惯上它们的出现顺序与上面 ClassModifier 产生式中所示的顺序一致。(段落底部的小文字!)
您会在其他几个指定使用修饰符的地方找到这句话,例如此处用于字段修饰符。
更新:我将“指定/推荐”替换为“习惯”,以使其成为可接受的答案。如果您阅读评论,请考虑到这一点;-)(感谢@EJP 澄清这一点)- 尽管如此,我还是建议您使用习惯顺序。
public / protected / private
abstract
static
final
transient
volatile
synchronized
native
strictfp
更新:OpenJDK 社区中的项目有一个新的“ Java 风格指南”倡议。它还推荐了修饰符顺序,还包括 Java 8 的新默认修饰符。
public / private / protected
abstract
static
final
transient
volatile
**default**
synchronized
native
strictfp
基于它们的 int 值。
我使用两个规则来记住修饰符序列,但不包括 strictfp,因为我从未使用过它。供参考。
同步本地人是最不优先的人。
PPP AS FTV:PPP {噪音} AS {观看} FTV {法国电视}。
:)