7.1.2 段落空行(即,只包含最左侧星号的行)会出现在段落之间和Javadoc标记(@XXX)之前(如果有的话)。 除了第一个段落,每个段落第一个单词前都有标签<p>,并且它和第一个单词间没有空格。
7.1 格式
5.2.6 参数名参数名以lowerCamelCase风格编写。参数应该避免用单个字符命名。
5.2.4 常量名常量名命名模式为CONSTANT_CASE,全部字母大写,用下划线分隔单词。那,到底什么算是一个常量?每个常量都是一个静态final字段,但不是所有静态final字段都是常量。在决定一个字段是否是一个常量时, 考虑它是否真的感觉像是一个常量。例如,如果任何一个该实例的观测状态是可变的,则它几乎肯定不会是一个常量。
5.2.3 方法名方法名都以lowerCamelCase风格编写。方法名通常是动词或动词短语。下划线可能出现在JUnit测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是:test<MethodUnderTest>_<state>,例如testPop_emptyStack。 并不存在唯一正确的方式来命名测试方法。
5.2.2 类名类名都以UpperCamelCase风格编写。类名通常是名词或名词短语,接口名称有时可能是形容词或形容词短语。现在还没有特定的规则或行之有效的约定来命名注解类型。测试类的命名以它要测试的类的名称开始,以Test结束。例如,HashTest或HashIntegrationTest。
5.2.1 包名包名全部小写,连续的单词只是简单地连接起来,不使用下划线。
4.8.7 Modifiers类和成员的modifiers如果存在,则按Java语言规范中推荐的顺序出现。public protected private abstract static final transient volatile synchronized native strictfp
4.8.6 注释4.8.6.1 块注释风格块注释与其周围的代码在同一缩进级别。它们可以是/* ... */风格,也可以是// ...风格。对于多行的/* ... */注释,后续行必须从*开始, 并且与前一行的*对齐。以下示例注释都是OK的。/* * This is // And so /* Or you can * okay. // is this. * even do this.
4.8.3 数组4.8.3.1 数组初始化:可写成块状结构数组初始化可以写成块状结构,比如,下面的写法都是OK的:new int[] { 0, 1, 2, 3}new int[] { 0, 1, 2, 3}new int[] { 0, 1, 2, 3}new int[] {0, 1, 2, 3}4.8.3.2 非C风格的数组声明中括号是类型的一部分:String[] args, 而非String args[]。
4.8.1 枚举类枚举常量间用逗号隔开,换行可选。没有方法和文档的枚举类可写成数组初始化的格式:private enum Suit { CLUBS, HEARTS, SPADES, DIAMONDS }由于枚举类也是一个类,因此所有适用于其它类的格式规则也适用于枚举类。
4.8 具体结构
4.6 空白
4.5 自动换行术语说明:一般情况下,一行长代码为了避免超出列限制(80或100个字符)而被分为多行,我们称之为自动换行(line-wrapping)。我们并没有全面,确定性的准则来决定在每一种情况下如何自动换行。很多时候,对于同一段代码会有好几种有效的自动换行方式。Tip: 提取方法或局部变量可以在不换行的情况下解决代码过长的问题(是合理缩短命名长度吧)
4.1.2 非空块:K & R 风格对于非空块和块状结构,大括号遵循Kernighan和Ritchie风格 (Egyptian brackets):左大括号前不换行左大括号后换行右大括号前换行如果右大括号是一个语句、函数体或类的终止,则右大括号后换行; 否则不换行。例如,如果右大括号后面是else或逗号,则不换行。
4.1 大括号
术语说明:块状结构(block-like construct)指的是一个类,方法或构造函数的主体。需要注意的是,数组初始化中的初始值可被选择性地视为块状结构(4.8.3.1节)。
关注时代Java