一. Java注释分类
// 注释一行 
/* ...... */ 注释若干行 
/** ...... */ 注释若干行,并写入 javadoc 文档 
通常这种注释的多行写法如下: 
/** 
* ......... 
* ......... 
*/

javadoc -d 文档存放目录 -author -version 源文件名.java 
这条命令编译一个名为 “源文件名.java”的 java 源文件,并将生成的文档存放在“文档存放目录”指定的目录下,生成的文档中 index.html 就是文档的首页。-author 和 -version 两个选项可以省略。

二. 文档注释的格式 
1. 文档和文档注释的格式化 
生成的文档是 HTML 格式,而这些 HTML 格式的标识符并不是 javadoc 加的,而是我们在写注释的时候写上去的。 
比如,需要换行时,不是敲入一个回车符,而是写入 <br>,如果要分段,就应该在段前写入 <p>。 
文档注释的正文并不是直接复制到输出文件 (文档的 HTML 文件),而是读取每一行后,删掉前导的 * 号及 * 号以前的空格,再输入到文档的。如 
/** 
* This is first line. <br> 
***** This is second line. <br> 
This is third line. 
*/ 
2. 文档注释的三部分 
先举例如下 
/** 
* show 方法的简述. 
* <p>show 方法的详细说明第一行<br> 
* show 方法的详细说明第二行 
* @param b true 表示显示,false 表示隐藏 
* @return 没有返回值 
*/ 
public void show(boolean b) { 
frame.show(b); 

第一部分是简述。文档中,对于属性和方法都是先有一个列表,然后才在后面一个一个的详细的说明 
简述部分写在一段文档注释的最前面,第一个点号 (.) 之前 (包括点号)。换句话说,就是用第一个点号分隔文档注释,之前是简述,之后是第二部分和第三部分。 
第二部分是详细说明部分。该部分对属性或者方法进行详细的说明,在格式上没有什么特殊的要求,可以包含若干个点号。,简述也在其中。这一点要记住了 
* show 方法的简述. 
* <p>show 方法的详细说明第一行<br> 
* show 方法的详细说明第二行 
第三部分是特殊说明部分。这部分包括版本说明、参数说明、返回值等说明。 
* @param b true 表示显示,false 表示隐藏 
* @return 没有返回值

三. 使用 javadoc 标记 
javadoc 标记由“@+标记类型"和专用注释引用组成 
javadoc 标记有如下一些: 
@author 标明开发该类模块的作者 
@version 标明该类模块的版本 
@see 参考转向,也就是相关主题 
@param 对方法中某参数的说明 
@return 对方法返回值的说明 

@exception 对方法可能抛出的异常进行说明

其中,@author 可以多次使用,以指明多个作者,生成的文档中每个作者之间使用逗号 (,) 隔开。@version 也可以使用多次,只有第一次有效 

使用 @param、@return 和 @exception 这三个标记只用于方法,@param 描述方法的参数,@return 描述方法的返回值,@exception 描述方法可能抛出的异常。它们的句法如下:

@param 参数名 参数说明 
@return 返回值说明 
@exception 异常类名 说明

四. javadoc 命令 
用法: javadoc [options] [packagenames] [sourcefiles]
选项: 
-public 仅显示 public 类和成员 
-protected 显示 protected/public 类和成员 (缺省) 
-package 显示 package/protected/public 类和成员 
-private 显示所有类和成员 
-d <directory> 输出文件的目标目录 
-version 包含 @version 段 
-author 包含 @author 段 
-splitindex 将索引分为每个字母对应一个文件 
-windowtitle <text> 文档的浏览器窗口标题 
javadoc 编译文档时可以给定包列表,也可以给出源程序文件列表。例如在 CLASSPATH 下有两个包若干类如下: 
  fancy.Editor 
  fancy.Test 
  fancy.editor.ECommand 
  fancy.editor.EDocument 
  fancy.editor.EView 
可以直接编译类: javadoc fancy\Test.java fancy\Editor.java fancy\editor\ECommand.java fancy\editor\EDocument.java fancy\editor\EView.java 
也可以是给出包名作为编译参数,如:javadoc fancy fancy.editor 

可以自己看看这两种方法的区别,到此为止javadoc就简单介绍完了,想要用好她还是要多用,多参考标准java代码

Java代码规范 
--注释 
@author LEI 
@version 1.10 2005-09-01 

1 注释文档的格式

注释文档将用来生成HTML格式的代码报告,所以注释文档必须书写在类、域、构造函数、方法、定义之前。注释文档由两部分组成——描述、块标记。

例如: 
/** 
* The doGet method of the servlet. 
* This method is called when a form has its tag value method equals to get. 

* @param request 
* the request send by the client to the server 
* @param response 
* the response send by the server to the client 
* @throws ServletException 
* if an error occurred 
* @throws IOException 
* if an error occurred 
*/ 
public void doGet (HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 
doPost(request, response); 

前两行为描述,描述完毕后,由@符号起头为块标记注视。 
2 注释的种类 
2.1 文件头注释 
文件头注释以 /*开始,以*/结束,需要注明该文件创建时间,文件名,命名空间信息。 
例如: 
/* 
* Created on 2005-7-2 
* / 
2.2 类、接口注释 
类、接口的注释采用 /** … */,描述部分用来书写该类的作用或者相关信息,块标记部分必须注明作者和版本。 
例如: 
/**Title: XXXX DRIVER 3.0 
*Description: XXXX DRIVER 3.0 
*Copyright: Copyright (c) 2003 
*Company:XXXX有限公司 
* @author Java Development Group 
* @version 3.0 
*/ 
例如: 
/** 
* A class representing a window on the screen. 
* For example: 

* Window win = new Window(parent); 
* win.show(); 


* @author Sami Shaio 
* @version %I%, %G% 
* @see java.awt.BaseWindow 
* @see java.awt.Button 
*/

class Window extends BaseWindow {

...


2.3 构造函数注释 
构造函数注释采用 /** … */,描述部分注明构造函数的作用,不一定有块标记部分。 
例如: 
/** 
* 默认构造函数 
*/ 
有例如: 
/** 
* 带参数构造函数,初始化模式名,名称和数据源类型 

* @param schema 
* Ref 模式名 
* @param name 
* Ref 名称 
* @param type 
* byVal 数据源类型 
*/ 
2.4 域注释 
域注释可以出现在注释文档里面,也可以不出现在注释文档里面。用/** … */的域注释将会被认为是注释文档热出现在最终生成的HTML报告里面,而使用/* … */的注释会被忽略。 
例如: 
/* 由于triger和表用一个DMSource,所以要区分和表的迁移成功标记 */ 
boolean isTrigerSuccess = false; 
又例如: 
/** 由于triger和表用一个DMSource,所以要区分和表的迁移成功标记 */ 
boolean isTrigerSuccess = false; 
再例如: 
/** 
* The X-coordinate of the component. 

* @see #getLocation() 
*/ 
int x = 1263732; 
2.5 方法注释 
方法注释采用 /** … */,描述部分注明方法的功能,块标记部分注明方法的参数,返回值,异常等信息。例如: 
/** 
* 设置是否有外码约束 

* @param conn 
* Connection 与数据库的连接 
*/ 
2.6 定义注释 
规则同域注释。 
3 注释块标记 
3.1 标记的顺序 
块标记将采用如下顺序: 
… 

* @param (classes, interfaces, methods and constructors only) 
* @return (methods only) 
* @exception (@throws is a synonym added in Javadoc 1.2) 
* @author (classes and interfaces only, required) 
* @version (classes and interfaces only, required. See footnote 1) 
* @see 
* @since 
* @serial (or @serialField or @serialData) 
* @deprecated (see How and When To Deprecate APIs) 
* … 
一个块标记可以根据需要重复出现多次,多次出现的标记按照如下顺序: 
@author 按照时间先后顺序(chronological) 
@param 按照参数定义顺序(declaration) 
@throws 按照异常名字的字母顺序(alphabetically) 
@see 按照如下顺序: 
@see #field 
@see #Constructor(Type, Type...) 
@see #Constructor(Type id, Type id...) 
@see #method(Type, Type,...) 
@see #method(Type id, Type, id...) 
@see Class 
@see Class#field 
@see Class#Constructor(Type, Type...) 
@see Class#Constructor(Type id, Type id) 
@see Class#method(Type, Type,...) 
@see Class#method(Type id, Type id,...) 
@see package.Class 
@see package.Class#field 
@see package.Class#Constructor(Type, Type...) 
@see package.Class#Constructor(Type id, Type id) 
@see package.Class#method(Type, Type,...) 
@see package.Class#method(Type id, Type, id) 
@see package 
3.2 标记介绍 
3.2.1 @param标记 
@param后面空格后跟着参数的变量名字(不是类型),空格后跟着对该参数的描述。 
在描述中第一个名字为该变量的数据类型,表示数据类型的名次前面可以有一个冠词如:a,an,the。如果是int类型的参数则不需要注明数据类型。例如: 
* @param ch the char 用用来…… 
* @param _image the image 用来…… 
* @param _num 一个数字……

对于参数的描述如果只是一短语,最好不要首字母大写,结尾也不要句号。 
对于参数的描述是一个句子,最好不要首字母大写,如果出现了句号这说明你的描述不止一句话。如果非要首字母大写的话,必须用句号来结束句子。(英文的句号) 
公司内部添加ByRef和ByVal两个标记,例如: 
* @param _image the image ByRef 用来…… 
说明该参数是引用传递(指针),ByVal可以省略,表示是值传递。 
3.2.2 @return标记 
返回为空(void)的构造函数或者函数,@return可以省略。 
如果返回值就是输入参数,必须用与输入参数的@param相同的描述信息。 
必要的时候注明特殊条件写的返回值。 
3.2.3 @throws 标记 
@throws以前使用的是@exception。 
@throws的内容必须在函数的throws部分定义。 
3.2.4 @author标记 
类注释标记。 
函数注释里面可以不出现@author。 
3.2.5 @version 
类注释标记。 
函数注释里面可以不出现@version 
3.2.6 @since 
类注释标记。 
标明该类可以运行的JDK版本 
例如: 
@since JDK1.2 
3.2.7 @deprecated 
由于某种原因而被宣布将要被废弃的方法。 
/** 
* @deprecated As of JDK 1.1, replaced by 
* setBounds 
* @see #setBounds(int,int,int,int) 
*/ 
3.2.8 @link标记 
语法:{@link package.class#member label} 
Label为链接文字。 
package.class#member将被自动转换成指向package.class的member文件的URL。 
4 HTML代码的使用 
在注释描述部分可以使用HTML代码。 
表示段落 
* …. 
表示自动标号

java注释详解--javadoc注释的更多相关文章

  1. JScript中的条件注释详解(转载自网络)

    JScript中的条件注释详解-转载 这篇文章主要介绍了JScript中的条件注释详解,本文讲解了@cc_on.@if.@set.@_win32.@_win16.@_mac等条件注释语句及可用于条件编 ...

  2. Java Annotation详解 理解和使用Annotation

    系统中用到了java注解: 查了一下如何使用注解,到底注解是什么: (1)创建方法:MsgTrace Java Class==> 在Create New Class中: name:输入MsgTr ...

  3. Java内部类详解

    Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...

  4. [转] Java内部类详解

    作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 本博客中未标明转载的文章归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...

  5. Java IO 详解

    Java IO 详解 初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正, ...

  6. java关键字(详解)

    目录 1. 基本类型 1) boolean 布尔型 2) byte 字节型 3) char 字符型 4) double 双精度 5) float 浮点 6) int 整型 7) long 长整型 8) ...

  7. Java内部类详解 2

    Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...

  8. Java泛型详解(转)

    文章转自  importNew:Java 泛型详解 引言 泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用.本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理 ...

  9. 【Java_基础】Java内部类详解

    1.四种内部类 java中的四种内部类:成员内部类.静态内部类.局部内部类和匿名内部类.其中匿名内部类用到的最多. 1.1.成员内部类 若一个类定义在另一个类的内部作为实例成员,我们把这个作为实例成员 ...

随机推荐

  1. 使用C语言实现线性表

    线性表是最常用且最简单的一种数据结构.一个线性表是n个数据元素的有限序列,序列中的每个数据元素,可以是一个数字,可以是一个字符,也可以是复杂的结构体或对象.例如:1,2,3,4,5是一个线性表,A,B ...

  2. Linux Socket - 内核非阻塞功能

    select 函数 int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval*tim ...

  3. SQL LEAD()函数 LAG()函数

    lag ,lead 分别是向前,向后:lag 和lead 有三个参数,第一个参数是列名,第二个参数是偏移的offset,第三个参数是 超出记录窗口时的默认值) SQL> select id,na ...

  4. sql-修改每条数据的某一个字段的值

    update B set B.maildata =(select SUBSTRING(maildata,0,3) from basedata where basedata.cid = B.cid)+( ...

  5. 【cocos2d-x 手游研发----博彩大转盘】

    博彩大转盘,转盘抽奖的小系统,这是一个很有意思的游戏模块,游戏中增加这样一些趣味的小模块,我会附上源码: 会增进玩家的粘性,每天都想来抽两把试试手气: 我做的这个是个矩形风格的转盘,不是那种圆形的转盘 ...

  6. jquery分页插件pagination

    参考1:https://www.cnblogs.com/jingping/p/3925976.html 参考2:https://segmentfault.com/a/1190000014487357 ...

  7. 详解sizeof与strlen

    一,sizeof是C语言的一种单目运算符,与C语言的其他运算符++,--一样,它并不是函数:sizeof()以字节为单位给出了操作数的大小:sizeof的值是无符号int. strlen是一个函数,只 ...

  8. Visual Studio进行负载测试,RIG和负载测试术语- Part II

    对于一个多用户的应用程序,性能是非常重要的.性能不仅是执行的速度,它包括负载和并发方面.Visual Studio是可以用于性能测试的工具之一.Visual Studio Test版或Visual S ...

  9. 2018沈阳网络赛 - Ka Chang KD树暴力

    题意:给你一棵树,n个点q次操作,操作1查询x子树深度为d的节点权值和,操作2查询子树x权值和 把每个点按(dfn,depth)的二维关系构造kd树,剩下的只需维护lazy标记即可 #include& ...

  10. OAuth2.0认证和授权以及单点登录

    https://www.cnblogs.com/shizhiyi/p/7754721.html OAuth2.0认证和授权机制讲解 2017-10-30 15:33 by shizhiyi, 2273 ...