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

Java修饰符(抽象、最终、公共、静态等)的合理顺序是什么?,java,Java,Java修饰符的合理顺序是什么 摘要 决赛 土生土长的 私人的 保护 公开的 静止的 strictfp 同步的 短暂的 易变的 更新 我已将措辞从“建议”改为“合理”,以便平息关于是否建议该订单的讨论。根据建议使用该订单是合理的 公开的 保护 私人的 摘要 违约 静止的 决赛 短暂的 易变的 同步的 土生土长的 strictfp 中提到了修饰符的惯用用法顺序(而不是Java虚拟机规范),例如,您可以找到以下定义(摘录): [……] 如果一个类声明中出现两个或多个(不同的)类修饰符,则通常(

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

  • 摘要
  • 决赛
  • 土生土长的
  • 私人的
  • 保护
  • 公开的
  • 静止的
  • strictfp
  • 同步的
  • 短暂的
  • 易变的
更新


我已将措辞从“建议”改为“合理”,以便平息关于是否建议该订单的讨论。

根据建议使用该订单是合理的

  • 公开的
  • 保护
  • 私人的
  • 摘要
  • 违约
  • 静止的
  • 决赛
  • 短暂的
  • 易变的
  • 同步的
  • 土生土长的
  • strictfp
中提到了修饰符的惯用用法顺序(而不是Java虚拟机规范),例如,您可以找到以下定义(摘录):

[……]

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

您可以在其他几个指定修饰符用法的地方找到这句话,例如字段修饰符

更新:我将“指定/建议”替换为“习惯”,使其成为可接受的答案。如果您阅读评论,请考虑这一点;-)(感谢@EJP澄清这一点)-尽管如此,I仍建议使用习惯顺序

更新:OpenJDK社区中的项目有一个新的“计划”。它还建议使用一个新的修饰符,还包括Java8的新修饰符

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

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

  • 同步本地人是优先级最低的人

  • PPP作为FTV:PPP{噪音}作为{观看}FTV{法国电视台}


  • :)

    基于它们的int值

    • 1:公众
    • 2:私人
    • 4:受保护
    • 8:静态
    • 16:决赛
    • 32:已同步
    • 64:易挥发
    • 128:瞬态
    • 256:本地
    • 512:接口
    • 1024:摘要
    • 2048年:2009年

    +1您经常会看到:“公共抽象”、“私有静态最终”等。一些IDE(例如NetBeans)甚至有一些快捷方式,例如“psf”或“psf”,您可以在中找到建议的顺序(而不是Java虚拟机规范!)。看看我的答案。@frva你可能找不到这样的东西。不要将语言语法与风格推荐混淆。@Puce:一些IDE(例如IntelliJ IDEA)甚至可以正确地对修饰词进行排序。这一点都不重要,你也不应该浪费太多时间去纠结于此。就我个人而言,我总是把访问修饰符放在第一位,但在那之后,我甚至不能告诉你我下一步要做什么。如果你想要一份推荐信,那就试试吧,但我不确定这里面有没有具体说明。我想知道为什么这应该是一个“非建设性”的问题(关闭请求)。您可以在规范中找到建议(参见我的答案),遵循此建议将提高代码的可读性。静态代码分析器(比如声纳)会抱怨如果你使用不同的命令。这件事甚至没有提到,在一个你应该看的地方,也在一个你希望它出现的地方。@EJB代码约定是从1999年开始的,非常需要更新。如果他们再次接触这些惯例,我希望他们能包括这个话题,因为这确实是一个好地方!Eclipse可以自动对修改器进行排序吗?或者如果它们未排序,至少给出一个警告?问题是“Java修饰符的建议顺序是什么?”这个问题在语言规范中得到了回答(由于顺序不是必需的,所以我认为它是规范中建议的)。JVM规范是关于类文件格式的,而不是关于Java源代码的。-事实上,顺序并不重要,但是如果您遵循一条建议,您的代码将更容易被其他人阅读。因此,我认为这是一个合理的问题,可以给出准确的答案。顺便说一句-静态代码分析器(例如SONAR)会抱怨错误的顺序。如果一个类声明中出现两个或多个(不同的)类修饰符,那么尽管不是必需的,但习惯上它们的出现顺序与上面在ClassModifier产品中显示的顺序一致。是规范的一部分!在这种情况下,我想大声喊叫,但我已经冷静下来了——对此感到非常抱歉;-)-我也不是土生土长的人,所以你在语言口译方面可能是对的。我只想说的是,Java源代码中修饰符的顺序是在一个非常正式的地方处理的——当我问自己同样的问题时,我很幸运地发现了这一点。我想没有比Java语言规范更好的地方可以找到答案了。让我们@EJP您对这个主题有强烈的意见(~没有推荐的顺序)。您能提供这个答案吗?我对投票很好奇。这个答案不包括关键字“default”,它们的int值和它有什么关系?
    public / protected / private 
    abstract 
    static 
    final 
    transient 
    volatile 
    synchronized 
    native 
    strictfp
    
    public / private / protected
    abstract
    static
    final
    transient
    volatile
    **default**
    synchronized
    native
    strictfp