Java 编码规范

命名规范

  • 命名方法
  • 匈牙利命名
  • 一般值命名变量
  • 原则:变量名=类型前缀+描述
  • 例如:bFoo(布尔型变量)、pFoo(指针类型变量)
  • 驼峰命名(最常用)
  • 混合使用大小写字母命名
  • 小驼峰法:第一个单词小写,其他单词首字母大写,例如:myRoomCount
  • 大驼峰法:单词首字母都大写,例如:ClassRoom
  • 包名:全小写,中间可以用点(.)分隔开,
  • 作为命名空间,报名应具有唯一性,可以采用公司或组织域名倒置
  • java 核心库报名不采用域名倒置,例如:java.awt.event
  • 类和接口名:采用大驼峰法
  • 文件名:大驼峰法
  • 变量:小驼峰法
  • 常量名:全大写,由多个单词组成的用下划线(_)分隔开,例如:YEAR、WEEK_OF_MONTH
  • 方法名:小驼峰法

注释规范

  • 单行注释(//)
  • 多行注释(/* … */)
  • 文档注释(/** … */)

文件注释

在每一个文件开头添加注释

通常包含版权信息、文件名、所在模块、作者信息、历史版本信息、文件内容、作用
例如

/*
*版权所有....
*许可证信息....
*描述:
*  ....
*历史版本:
*  ....
*/

文档注释

能生成 API 帮助文档

JDK 中 javadoc 命令能提取这些注释信息并生成 HTML 文件

文档注释主要对类(或接口)、实例变量、静态变量、实例方法、静态方法进行注释

  • 文档注释标签

标签

功能

@author

说明类或接口的作者

@deprecated

说明类、接口或成员已经废弃

@param

说明方法参数

@return

说明返回值

@see

参考另一个主题的链接

@exception

说明方法所抛出的异常类

@throws

同@exception

@version

类或接口版本

  • 生成 API 帮助文档,可以使用 javadoc 命令

代码注释

  • 单行://
  • 多行:/* … */

地标注释

  • // TODO:此处由待处理任务,或未完成的代码
  • // FIXME:此处代码是错误的,需要修正
  • // XXX:此处代码已经完成,但是实现的方法还有待商讨

排版

空行

  • 类声明和接口之间保留两个空行
  • 两个方法之间保留一个空行
  • 方法的第一条语句之前保留一个空行
  • 代码注释(尾端注释除外)之前保留一个空行
  • 一个方法内的两个逻辑段之间保留一个空行

空格

  • 赋值符号(=)前后各一个空格
  • 例如
a = b;
  • 所有二元运算符有应该使用空格与操作数分开
  • 例如
a = b + c;
  • 一元操作符(负号、自增、自减等)与操作数之间没有空格
  • 例如
a++;
--b;
  • 左小括号(“ ( ”)之后,右小括号(“ ) ”)之前不能有空格
  • 左大括号(“ { ”)之前应有一个空格
  • 例如
public static void main(String[] args) {

}
  • 方法参数列表左小括号(“ ( ”)之前没有空格,右小括号(“ ) ”)之后有一个空格
  • 例如
public static void test(int a) {

}
  • 关键字之后紧跟着左小括号(“ ( ”),关键字之后应该有一个空格
  • 例如
while (1) {

}

缩进

  • 通常将4个空格作为缩进排版的一个单位
  • 一般默认一个制表符(Tab)等于8个空格
  • 不同 IDE 工具制表符与空格对应个数可能不同,IDEA 中默认一个制表符对应4个空格
  • 方法、Lambda、控制语句等包含大括号 “ {} ” 的代码块中,代码块的内容相对于首行缩进一个制表符(Tab)
  • 例如
public class Date {
	public void time() {
		int year = super.getYear() + 1900;
	}
}
  • if 语句中条件表达式的断行,新的一行应相对于上一行缩进两个指标都(Tab),再往后的断行应与第一次断行对齐
  • 例如
if ((a == b)
		|| (c > d) && (e != f)
		&& (g <= h)) {
		
}

断行

  • 一行代码最好不要超过80个字符
  • 断行规范
  • 在一个逗号后断开
  • 在一个操作符前断开,要选择较高级别的运算符
  • 新的一行应相对于上一行索引两个制表符

其他规范

  • 声明变量的时候最好一行声明一个
  • 左大括号(“ { ”)位于声明语句同行的末尾,右大括号(“ } ”)另起一行,与相对应声明语句对齐;除非是一个空语句右大括号(“ } ”)应紧跟左大括号(“ { ”)之后
  • 例如
public static void main(String[] args) {
	while (1) {
		
	}
}

public static void setString() {}
  • 每行最多包含一条语句
  • 例如
a++;
b--;

// 不推荐
a++; b--;
  • if、for 等控制语句在只有一行代码的情况下最好不要省略两个大括号