Java修饰符的合理顺序是什么?
我把建议的字眼改为合理的字眼,是为了平息有关命令是否建议的讨论。
修饰符的习惯使用顺序在Java语言规范(而不是Java虚拟机规范)中提到,例如,对于类修饰符,您可以找到以下定义(摘录):
ClassModifiers:
ClassModifier
ClassModifiers ClassModifier
ClassModifier: one of
Annotation public protected private
abstract static final strictfp
[....]
如果两个或多个(不同的)类修饰符出现在类声明中,那么通常(尽管不是必需的)它们以与ClassModifier的产生式中所示的一致的顺序出现。(段落底部小文字!)
Google还建议使用Java规范中提到的习惯顺序。
public / protected / private
abstract
static
final
transient
volatile
synchronized
native
strictfp
更新:对于OpenJDK社区中的项目,有一个新的“Java Style Guidelines”计划。它还有一个关于修饰符顺序的建议,还包括Java8的新默认修饰符。
public / private / protected
abstract
static
final
transient
volatile
**default**
synchronized
native
strictfp
问题内容: Java修饰符的合理顺序是什么? 抽象 最后 本机 私人的 受保护的 上市 静态的 严格的 已同步 短暂的 易挥发的 更新资料 我已将措辞从“ 建议” 更改为“ 合理” ,以使讨论是否平静,无论是否建议使用该命令。 问题答案: Java语言规范(而不是Java虚拟机规范)中提到了修饰符的 习惯 用法顺序,例如,对于类修饰符,您将找到以下定义(摘录): [....] 如果两个或更多个(不
在我的Java项目中,我有一个类,在这个类中,我使用公共静态final字符串属性声明了许多项目常量: 所以我可以在我的项目中的许多不同的地方使用它:
问题内容: 在Java中,有人教导说应该对变量进行私有化以实现更好的封装,但是静态常量呢?这个: 结果将等同于此: 但是哪种更好的做法? 问题答案: 有一个原因不直接在代码中使用常量。 假设FOO稍后可能会更改(但仍保持不变)。只要没有人愚蠢到直接对值进行硬编码就不会破坏任何内容吗? 否。Java编译器会将上面的Foo等常量内联到调用代码中,即变成。现在,如果您重新编译库而不是重新编译调用代码,则
主要内容:final 修饰变量,final修饰方法,final修饰类,final 修饰符使用总结final 在 Java 中的意思是最终,也可以称为完结器,表示对象是最终形态的,不可改变的意思。final 应用于类、方法和变量时意义是不同的,但本质是一样的,都表示不可改变,类似 C# 里的 sealed 关键字。 使用 final 关键字声明类、变量和方法需要注意以下几点: final 用在变量的前面表示变量的值不可以改变,此时该变量可以被称为常量。 final 用在方法的前面表示方法不可以
文档说修饰符是从左侧应用的。但从这个例子来看,它们看起来像是从右边应用的:首先是边框,然后是填充,因为文本和边框之间没有空格
问题内容: 当这样使用时: 和之间有什么区别? 问题答案: 静态导入声明类似于普通导入声明。正常的导入声明从包中导入类,从而允许它们在没有包限定的情况下使用,而静态导入声明从类中导入静态成员,从而允许它们在没有类限定的情况下使用。 那么什么时候应该使用静态导入?非常谨慎!仅当您打算以其他方式声明常量的本地副本或滥用继承(常量接口反模式)时,才使用它。换句话说,当您需要频繁访问一两个类的静态成员时,