什么是Java修饰符(抽象,最终,公共,静态等)的合理顺序?
什么是Java修饰符的合理顺序?
- 抽象
- 最后
- 本地人
- 私人的
- 保护
- 上市
- 静态的
- strictfp
- 同步
- 短暂的
- 挥发物
更新
我已经把build议的措辞改为合理 ,以便冷静地讨论是否build议订单。
Java语言规范 (而不是Java虚拟机规范)中提到了修饰符的习惯使用顺序,例如对于类修饰符,您将find以下定义(摘录):
ClassModifiers: ClassModifier ClassModifiers ClassModifier ClassModifier: one of Annotation public protected private abstract static final strictfp
[….]
如果在类声明中出现两个或多个(不同的)类修饰符,则通常(但不是必需的),它们按照ClassModifier生产中所示的顺序出现。 (小段底部的小文本!)
你会在指定修饰符用法的其他几个地方find这个句子,例如这里用于字段修饰符。
更新 :我将“指定/推荐”replace为“习惯”,以使其成为可接受的答案。 考虑到这一点,如果你读的评论;-)(谢谢@EJP清楚) – 不过, 我会build议使用习惯的顺序。
Google还build议使用Java规范中提到的习惯顺序。
public / protected / private abstract static final transient volatile synchronized native strictfp
更新 :OpenJDK社区的项目有一个新的“ Java风格指南 ”。 它还有修改器顺序的build议,还包括Java 8的新默认修改器。
public / private / protected abstract static final transient volatile **default** synchronized native strictfp
使用按照Java虚拟机规范表4.4的顺序是合理的
- 上市
- 保护
- 私人的
- 抽象
- 静态的
- 最后
- 短暂的
- 挥发物
- 同步
- 本地人
- strictfp
基于它们的int值。
修改器(Java平台SE 8)
- 1:公共
- 2:私人
- 4:保护
- 8:静态
- 16:最后
- 32:同步
- 64:易失性
- 128:瞬态
- 256:原生
-
512:接口 - 1024:抽象
- 2048:strictfp
我使用两条规则来记住修饰符序列,但不包括strictfp,因为它从来没有被我使用过。 仅供参考。
-
同步本地是最不重要的人。
-
PPP AS FTV:PPP {噪音} AS {看} FTV {法国电视}。
🙂