本建议来自google
http://google-styleguide.googlecode.com/svn/trunk/javaguide.html
国内可能无法访问这个链接,写这篇文章的时候是在美国上的这个网络,下面的文章基本上翻译得到。
一、介绍
1.1 术语说明
在下面文档中,除非特殊说明
1. class的意思包括,普通的类,接口,枚举以及注解
2. comment 通常指implementation 的注释,没有使用短语"documentation comments" ,而是使用"Javadoc."
1.2 参考说明
文档中的实例代码是不规范的,因为如果全部是符合规范风格的代码没法举例做比较。
二、代码源文件基本风格
2.1 文件名
文件名包含了一个区分大小写的名字加上.java 的后缀
2.2 文件编码
文件编码为UTF-8
2.3 特殊字符
2.3.1 空白符
除了换行符,所有的空白的地方应该都是空格符ASCII 为(0x20),包括如下内容
1.所有其他的空白字符和是空白的字面的字都应该避免
2. Tab键产生的空格需要避免(Eclipse 有这方面的设置)
2.3.2 特殊的转义字符
对于任何有特殊的转义字符的,使用这些(\b, \t , \n , \f , \r , \", \' 和 \\),比使用效果相同的八进制(例如 \012)和Unicode(\u000a)要好。
2.3.3 Non-ASCII 码
对于一些不常用的非ASCII码,比如无穷,能避免的避免,不能的应该加上相应的注释
举个例子:
String unitAbbrev = "μs"; String unitAbbrev = "\u03bcs"; // "μs" String unitAbbrev = "\u03bcs"; // Greek letter mu, "s" String unitAbbrev = "\u03bcs";
说明:
第一种最好,清楚明白,不要注释
第二种也可以,但是没有理由这么做,因为注释上能写出来,直接写出来不就行了
第三种也可以,但是比较奇怪而且容易出错
三、源代码结构风格
3.1 License 或者Copyright
如果license 或者copyright 信息属于某个文件,它应该出现在文件中
3.2 Package 的声明
包的声明不应该是大于一行的,字符数控制在一行(大概80-100,后面会说一行的字符数)
3.3 Import 的声明
3.3.1 不应该有通配符
这就说明了,如果没有特殊情况,别用xxx.*导入一个包下的所有文件的情况
3.3.2 不应该有换行符
3.3.3 排序和空白
导入的东西应该分组,不同的组用一个空白行来分开,这些组的顺序是这样的
1. 所有你自己的类在一个单独的组
2. com.google在一个组中(广告,哈哈)
3. 第三方的包,也需要按产品来分,比如android,com,junt,org,sun
4. java 的导入
5. javax的导入
3.4 类的声明
3.4.1 精确的命名最高级别的类名(类中可能有内部类)
3.4.2 类的成员排序
类成员的排序应该对学习和理解有帮助,这个没有一个秘方告诉你怎么做,不同的类成员的顺序也是不一样的。
其中一个重要的方法是按照某些逻辑规则来排序。
3.4.2.1 重载的方法永远不应该分开
四、格式化
4.1 括号
4.1.1 但有选择的情况下应该用括号
比如说存在if, else , for , do 和 while的使用,甚至内容为空。
4.1.2 非空代码块
括号参照K&R样式:
1. 括号开始(前括号)之前不要有空白行
2. 括号开始(前括号)之后要有空白行
3. 括号结束(后括号)之前应该有空白行
4. 括号结束(后括号)之后有空白行,但是如果后面接else ,catch,或者是类,结构体的的后括号,后者后面需要带分号.
下面是举例
return new MyClass() { @Override public void method() { if (condition()) { try { something(); } catch (ProblemException e) { recover(); } } } };
4.1.3 空的块
类似空的块这样的括号应该紧跟在一起,除非是后面有多层的情况(if/else if/else 或者try/catch/finaly)
void doNothing() {}
4.2 块缩排
不同级别的块的缩小排放是2个空白符,即2个英文字符的宽度,左右方向键应该是4个空。
4.3 一个类型的代码清单要空一行
4.4 行长度为80或者100
例外,有些情况下有例外
1.比如长的URL,JSNI的方法
2. package 或者import ,我们可以控制自己,但是控制不了别人
3. 命令行中命令,和说明,你准备把这些东西放拷贝到一个shell中的,不要因为这些规则让你很不方便。
4.5 行的折叠(Line-warpping)
通常情况下行长度为80-100,但是不要因为这个规则而让一个单词变成多个。还有有些情况下需要折叠。
4.5.1 在什么地方打断当前行
主要方向是在高语法级别处选择换行
1.比如说在多个catch的时候,多个.(点)的时候,或者继承
2. 多个定义的逗号
4.5.2 独立的连续的行被打断后,至少前面放4个空格符
4.6 空白区域
4.6.3 水平对齐:没有要求
private int x; // this is fine private Color color; // this too private int x; // permitted, but future edits private Color color; // may leave it unaligned
在本文中,没有必要把所有的注释水平对齐
4.7 Grouping parentheses
4.8 特殊结构
4.8.1 枚举类型
private enum Suit { CLUBS, HEARTS, SPADES, DIAMONDS }
4.8.2 变量声明
4.8.2.1 一次声明一个变量
4.8.2.2 声明之后尽快初始化
4.8.3 数组
数组的初始化,和一个块的格式是一样的,所以下面的格式都是可以的
new int[] { new int[] { 0, 1, 2, 3 0, } 1, 2, new int[] { 3, 0, 1, } 2, 3 } new int[] {0, 1, 2, 3}
4.8.4 Switch
switch (input) { case 1: case 2: prepareOneOrTwo(); // fall through case 3: handleOneTwoOrThree(); break; default: handleLargeNumber(input); }
4.8.5 注解
@Override @Nullable public String getNameIfPresent() { ... }
@Override public int hashCode() { ... }
@Partial @Mock DataLoader loader;
4.8.6 注释
/* * This is // And so /* Or you can * okay. // is this. * even do this. */ */
4.8.7 修改
类和成员的修改,按照下面的推荐的顺序修改。
public protected private abstract static final transient volatile synchronized native strictfp
4.8.8 数字
Long 型的数字后缀加L比小l好
5 命名
5.1 对于所有标识符的一般规则
标识符只使用ASCII码和数字,除了下面有两种特殊情况下还会用到下划线,像下面的标识符 name_, mName, s_name, kName都不再使用。
5.2 标识符类型推荐规则
5.2.1 包名
报名全部小写,也不用下划线
例如
com.example.deepspace //推荐使用 com.example.deepSpace //不推荐使用 com.example.deep_space //不推荐使用
相关推荐
谷歌翻译版的JDK 1.8 API中文文档则是为了方便中国开发者阅读,将原本英文的API说明翻译成了中文,使得理解更为便捷。 在Java 1.8版本中,有许多重要的知识点和更新,包括: 1. **Lambda表达式**:这是Java 8的一...
google-java-format是一个重新格式化 Java 源代码以符合 Google Java Style的程序。 使用格式化程序 从命令行 下载格式化程序 并运行它: java -jar /path/to/google-java-format-${GJF_VERSION?}-all-deps.jar ...
在本项目中,"JAVA自动调用谷歌翻译接口实现txt文档翻译.zip" 是一个使用Java编程语言实现的项目,它允许开发者通过调用谷歌翻译(Google Translate)的API来自动翻译TXT格式的文档。这个项目可能包含了一个或者多个...
google-java-format是一个重新格式化Java源代码以符合Google Java风格的程序。格式化程序可以作用于整个文件、有限的行、特定的偏移,传递到标准输出(默认)或就地更改。格式化程序的格式化算法没有可配置性。这是...
Google Java编程风格指南是一套详尽的规范,旨在提高代码质量和可维护性。通过遵循这些规则,开发者能够编写出更加一致、可读性强且易于维护的代码。此外,这套规范也强调了团队合作的重要性,鼓励开发者在实践中...
【Google Java编程风格指南中文版】是Google官方提供的关于Java编程的一份规范文档,由@Hawstein翻译成中文。这份指南旨在确保Java源代码在Google内部的一致性和可读性,不仅关注代码的格式,也包括编程习惯和最佳...
`google-java-format` 应运而生,它能够自动将不符合此规范的Java代码调整为标准格式,使得团队成员无需手动检查和调整代码风格。 `google-java-format` 的核心功能包括: 1. **代码格式化**:它可以一次性处理...
Google Java编程风格指南是Google为Java开发者制定的一套代码编写标准,旨在提升代码的可读性、可维护性和团队协作效率。这套指南详细规定了命名规则、代码格式、注释规范、类与对象设计、异常处理、测试等方面的...
通过遵循Google Java编程规范,开发人员可以编写出更加规范、一致且易于维护的代码。这些规范不仅涵盖了编码格式和样式方面的要求,还涉及到了一些最佳实践和约定,这对于构建高质量的软件系统至关重要。
首先,Android代码风格通常遵循Google提供的Android Developer Style Guide,这是一份详尽的指南,涵盖了Java语言和XML文件的编码风格。这份风格指南包括但不限于命名规范(如变量、类、方法名的大小写规则)、代码...
本资源包含两个与Google Java代码风格相关的格式化模板,分别是针对Eclipse IDE的`eclipse-java-google-style.xml`和Spring Tool Suite (STS) IDE的`sts-java-formatter.xml`。 `eclipse-java-google-style.xml`是...
Java代码格式化是编程实践中的一项重要任务,它有助于保持代码整洁、规范,便于团队协作和后续维护。在Java开发中,代码格式化通常涉及到代码的缩进、空格使用、行宽限制、命名规范等方面。下面我们将深入探讨Java...
在编程世界中,保持代码的一致性和可读性至关重要,这就是`Java`代码格式化和模板工具的作用。本文将深入探讨`Java`代码格式代码模板(code templates)和代码格式化器(code formatter),以及如何利用它们提升开发...
常见的Java代码格式化工具有Eclipse的`Source`菜单、IntelliJ IDEA的`Reformat Code`功能,以及命令行工具如Google的`Java Formatter`。 在实际开发中,良好的注释习惯和有效的格式化工具结合使用,不仅可以提升...
3. **Checkstyle**:这个工具专注于代码格式和风格的检查,帮助开发者遵循特定的编码规范,如Google Java Style Guide或Sun Microsystems的Java coding conventions。Checkstyle可以通过IDE插件或者构建工具(如...
本文将详细介绍“idea中阿里巴巴Java代码格式规范插件”,以及如何利用这个工具来提升个人和团队的编码质量。 首先,让我们了解阿里巴巴Java代码规范。阿里巴巴作为中国领先的互联网公司,其开发团队制定了一套详细...
通过以上各种规则,Java代码格式配置文件确保了团队间的代码风格一致性,提高了代码质量和可维护性。团队成员应当理解和遵守这些规范,同时利用工具自动化执行这些规则,减少因格式问题引发的冲突,促进高效合作。
Google Java编程风格规范是一份详细的指导文档,旨在统一Google内部的Java代码编写风格,确保代码的一致性和可维护性。本规范不仅关注代码的格式美观,更注重约定及编码标准。 #### 二、术语与指南说明 - **术语...
这个"java英文翻译(中英文)文献"包含了关于Java代码规范的中英文对照版本,对于正在进行毕业设计或希望提升编程技能的开发者来说,是一份非常实用的学习资料。 首先,让我们聚焦于"java代码规范(Ch).doc",这份...