介绍
本文档是Google针对java平台的编码标准的完整定义。 Java源文件被描述为Google样式,当且仅当它遵守这里的规则时。
像其他编程风格指南一样,所涉及的问题不仅包括格式化的审美问题,而且还涉及其他类型的约定或编码标准。然而,本文件主要侧重于我们普遍遵循的快速规则,避免提供不能明确强制执行的建议(无论是人力还是工具)。
术语注释
在本文件中,除非另有说明:
- 术语类被用于包括“普通”类,枚举类,接口或注释类型(@interface)。
- 术语成员(一个类)用于包含嵌套类,字段,方法或构造函数; 也就是除了初始化和注释之外,所有类的顶级内容。
- 术语评论总是指实施意见。 我们不使用短语“文档评论”,而是使用通用术语“Javadoc”。
其他“术语注释”将在本文档中偶尔出现。
源文件说明
- 文件名
源文件名由它包含的顶级类(其中只有一个)的区分大小写的名称以及.java扩展名组成。
- 文件编码
使用UTF-8编码
特殊字符
- 空格字符
除了行终止符序列,ASCII水平空格字符(0x20)是唯一出现在源文件中任何地方的空格字符。 这意味着:
- 字符串和字符文字中的所有其他空白字符都将被转义
- 不用Tal来缩进
- 其它特殊字符
对于具有特殊转义序列(\ b,\ t,\ n,\ f,\ r,\“,\”和\)的任何字符,使用该序列而不是相应的八进制(例如\ 012)或 Unicode(例如\ u000a)转义。
- 非ASCII字符
对于其余的非ASCII字符,使用实际的Unicode字符(例如∞)或等效的Unicode转义(例如\ u221e)。 选择只取决于使代码更容易阅读和理解,尽管Unicode转义外部字符串文字和注释是非常不鼓励的。
源文件结构
源文件按顺序组成:
- 许可或版权信息(如果存在)
- 包语句
- 导入语句
- 完全的一个顶级类
使用一个完全的空白行分隔存在的每个部分。
- 添加许可或版权信息(如果存在)
如果许可或版权信息属于文件,则标明。
包语句
import语句
不使用通配符导入
导入语句排序
- 所有静态导入单个块。
- 所有非静态导入的单个块。
如果存在静态和非静态导入,则单个空行将两个块分开。 导入语句之间没有其他空行。
在每个块内,导入的名称以ASCII排序顺序显示。 (注意:这不同于导入语句是ASCII排序顺序,因为’。’在’;’之前排序。)