### Java代码规范详解
#### 1. 术语说明
**1.1 术语说明**
- **Class**: 在本文档中,“class”这一术语可以指代多种类型的类:普通类、枚举类、接口以及注解类型(@interface)。
- **Comment**: “comment”特指实现的注释(implementation comments),在Google编程规范中,“documentation comments”一词被替换为“Javadoc”。
#### 2. 源文件基础
**2.1 文件名**
- 源文件的命名需严格遵循其最顶层类的名称,且文件扩展名必须为`.java`。
**2.2 文件编码**
- 所有的源文件均采用UTF-8编码。
**2.3 特殊字符**
**2.3.1 空白字符**
- 除行结束符序列外,源文件中仅允许使用ASCII水平空格字符(0x20)作为空白字符。
- 所有其他空白字符需通过转义字符表示。
- 制表符不可用于代码缩进。
**2.3.2 特殊转义序列**
- 对于拥有特殊转义序列的字符(\b, \t, \n, \f, \r, \", \'及\), 应使用对应的转义序列而非八进制或Unicode转义。
**2.3.3 非ASCII字符**
- 对于非ASCII字符,若使用实际的Unicode字符更有利于代码的可读性和理解,则优先使用实际的Unicode字符。
- 若使用Unicode转义符能更好地提高代码的可读性,则使用Unicode转义符。
- 推荐在使用Unicode转义符或特殊Unicode字符时添加注释以帮助理解。
#### 3. 源文件结构
**3.1 许可证或版权信息**
- 如果文件含有许可证或版权信息,则应置于文件开头。
**3.2 package语句**
- `package`语句不应换行,即使超出列限制也不做折行处理。
**3.3 import语句**
**3.3.1 不使用通配符**
- 禁止使用`import *`这类通配符形式的导入语句。
**3.3.2 不换行**
- `import`语句不应换行。
**3.3.3 顺序与间距**
- `import`语句分为以下几个组别并按顺序排列:
- 所有静态导入独立成组;
- `com.google`相关的导入(仅当文件位于`com.google`包下);
- 第三方库的导入,按顶级包名字典序排列;
- `java`标准库的导入;
- `javax`标准库的导入。
- 组内按字典序排列,各组之间用一个空行分隔。
**3.4 类声明**
**3.4.1 只有一个顶级类声明**
- 每个源文件中只能包含一个顶级类声明。
- 特殊情况如`package-info.java`文件中无对应的`package-info`类声明。
**3.4.2 类成员顺序**
- 类成员的顺序对代码的易读性和学习性有着重要影响,但没有统一的标准。
- 成员变量、方法等的排序逻辑应由维护者能够解释清楚。
- 新增的方法不应无序添加,而应根据现有成员的逻辑进行合理放置。
#### 总结
本文档详细阐述了Java代码规范的基本要点,包括术语定义、文件命名规则、编码标准、空白字符与特殊字符的使用规定、文件结构布局、以及类声明的具体要求。遵循这些规范不仅能够提高代码质量,还能提升团队协作效率,确保代码风格一致。此外,对于特定的术语,如`class`和`comment`,也给出了明确的定义,进一步增强了文档的准确性和可读性。