代码的注释对编写的代码起到一个解释的作用,借助于代码注释可以让其他开发者很容易看懂你写的代码,理解代码结构,也有助于你在很长时间后,能够看懂自己写的代码。
一段没有注释的代码:
public static void main(String[] args) {
int num1,num2,result;
Scanner sc = new Scanner(System.in);
System.out.println("请输入长方形的长度");
num1 = sc.nextInt();
System.out.println("请输入长方形的宽度");
num2 = sc.nextInt();
if( num1 <=0 || num2 <=0 )
{
System.out.println("您输入的长度和宽度小于或等于0,程序将退出");
System.exit(0);
}
result = num1 * num2;
System.out.println("长方形的面积为:" + result);
}虽然没有代码注释,但对Java代码有一定了解的人,看懂这段代码还是非常容易的,从语句中也能理解程序的功能和代码的作用。
再看这段没有注释的代码:
public void BobbleSort() {
int[] arr = { 6, 3, 8, 2, 9, 1 };
for (int num : arr) {
System.out.print(num + " ");
}
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int num : arr) {
System.out.print(num + " ");
}
}知道上面的代码啥意思吗?没有一定Java基础的人,想看懂有一定难度。不过从方法名字也可以判断出来,这是冒泡排序的算法。
下面的这段代码是不是很容易理解了呢?
public void BobbleSort() {
//声明待排序的整型数组
int[] arr = { 6, 3, 8, 2, 9, 1 };
//输出排序前的数组元素
for (int num : arr) {
System.out.print(num + " ");
}
/**
* 用for循环语句控制数组的扫描趟数,
* 扫描趟数为待排序数组元素的个数减去1
*/
for (int i = 0; i < arr.length - 1; i++) {
/**
* 用for循环遍历待排序数组元素,并进行比较和位置交换,
* 循环范围介于0到排序数组元素的个数减去1再减去外层循环当前执行的扫描趟数
*/
for (int j = 0; j < arr.length - 1 - i; j++) {
//交换数组元素
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
//输出排序后的数组元素
for (int num : arr) {
System.out.print(num + " ");
}
}代码加上注释后,就很容易看懂冒泡排序的算法了,也有助于了解冒泡排序的算法原理。
如何正确地给代码增加注释呢?下面从注释标签规范、注释基本要求、块注释、单行注释、尾端注释方面进行说明。
(1)注释标签规范
给代码加注释需要采用符合javadoc标准的注释标签语法,以便使用工具自动生成相关文档。注释标签见下表。

(2)注释基本要求
给代码添加注释是为了增加对程序的阅读理解,因此注释的内容要清楚、明了,含义准确,防止注释二义性;源代码有效注释行的数量应在程序行数量的20%以上;在class文件头部应进行注释,注释应列出:版权说明、版本号、生成日期、作者、功能描述等内容。
(3)块注释
块注释通常用于提供对文件、方法、数据结构和算法的描述。放置于每个文件以及每个方法之前,也可用于其他地方,如方法内部。功能和方法内部的块注释,应与所描述的代码具有相同的缩进格式,块注释之首应该有一个空行,用于把块注释和代码分割开来。
“/**”符号是块注释的开始,“*/”符号是块注释的结束,在注释块中,每行注释内容以“*”符号开始。
示例:
/** * Here is a block comment one. * Here is a block comment two. * ………… */
(4)单行注释
单行注释用于对语句及语句块的解释,一般放置在语句或语句块的前面。注释可显示在一行内,并与其后的代码具有相同的缩进层级。
“//”为单行注释标记,从符号“//”开始直到换行为止的所有内容都是注释内容。
单行注释也可以使用“/**/”注释标记,符号“/*”与“*/”之间的所有内容均为注释内容。
示例:
if (condition)
{
/* Handle the condition. */
...
// Handle the condition.
...
}(5)尾端注释
尾端注释一般紧跟在语句的后面加以解释,与语句在同一行。但应有足够的空白分开代码和注释。
示例:
if (a == 2)
{
return TRUE; /* special case */
}
else
{
return isPrime(a); /* works only for odd a */
}良好的代码注释有助于对程序的理解。遵循注释标签规范可以使用工具自动生成相关文档。给代码添加注释是为了增加对程序的阅读理解,因此注释的内容要清楚、明了,含义准确。对类、方法、功能的注释一般采用块注释。对语句的注释多采用单行注释。