java学习笔记24:文档注释与代码块

1、java文档注释

​ Java 支持三种注释方式。前两种分别是 ///* */,第三种被称作说明注释,它以 /** 开始,以 ***/**结束。

说明注释允许你在程序中嵌入关于程序的信息。你可以使用javadoc工具软件来生成信息,并输出到HTML文件中。

1.1javadoc 标签
标签描述示例
@author标识一个类的作者@author description
@deprecated指名一个过期的类或成员@deprecated description
{@docRoot}指明当前文档根目录的路径Directory Path
@exception标志一个类抛出的异常@exception exception-name explanation
{@inheritDoc}从直接父类继承的注释Inherits a comment from the immediate surperclass.
{@link}插入一个到另一个主题的链接{@link name text}
{@linkplain}插入一个到另一个主题的链接,但是该链接显示纯文本字体Inserts an in-line link to another topic.
@param说明一个方法的参数@param parameter-name explanation
@return说明返回值类型@return explanation
@see指定一个到另一个主题的链接@see anchor
@serial说明一个序列化属性@serial description
@serialData说明通过writeObject( ) 和 writeExternal( )方法写的数据@serialData description
@serialField说明一个ObjectStreamField组件@serialField name type description
@since标记当引入一个特定的变化时@since release
@throws和 @exception标签一样.The @throws tag has the same meaning as the @exception tag.
{@value}显示常量的值,该常量必须是static属性。Displays the value of a constant, which must be a static field.
@version指定类的版本@version info
/*** 这个类绘制一个条形图
* @author runoob
* @version 1.2
*/
1.2 javadoc 工具

​ 将你 Java 程序的源代码作为输入,输出一些包含你程序注释的HTML文件。每一个类的信息将在独自的HTML文件里。javadoc 也可以输出继承的树形结构和索引。

  • IDEA生成Javadoc: Tools --> Generate JavaDoc -->

  • Eclipse 生成javadoc:project --> Generate JavaDoc -->

  • 命令参数详解

    javadoc命令既可以处理包,也可以处理java源文件.
    javadoc [option] [packagenames] [sourcefiles]
    javadoc命令的主要选项:
    -public 仅为public访问级别的类及类的成员生成javaDoc文档
    -proteceted 仅为publicprotected访问级别的类及类的成员生成javadoc文档.
    (默认选项)
    -package 仅为public,protected和默认访问级别的类及类的成员生成
    javaDoc文档
    -privatepublic,protected,默认和private访问级别的类及类的成员生成javadoc文档
    -version 解析@version标记
    -author 解析@author标记
    -splitindex 将索引分为每个字母对应一个索引文件
    -sourcepath <pathlist> 指定java源文件的路径
    -classpath <pathlist> 指定classpath
    -d <directory> 指定javaDoc文档的输出目录
    javadoc命令的几个选项的用法:
    -public,-protected,-package-private4个选项用于指定输出那些访问级别的类和成员的javaDoc文档.其中protected为默认选项。
    -version和-author选项指定在javaDoc文档中包含由@version@author标记指示的内容。这两个选项不是默认选项。在默认情况下,javadoc命令会忽略注释中的@version@author标记,因此生成的javaDoc文档中不包含版本和作者信息。
    

    例:javadoc -d apidoc *Test.java

2、代码块

  • 局部代码块:

类中方法的方法体,限定变量生命周期

 public static void go() {
        // 局部代码块
        {
            int age = 30;
            System.out.print("go: " + age);
        }
    }
  • 构造代码块:

构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行。随着类的加载而加载执行一次,类初始化,一般加载驱动。

ps:每创建会优先构造执行,每个构造中有相同的可放在构造代码块

  • 静态代码块:

1.用static{}包裹起来的代码片段,只会执行一次。静态代码块优先于构造块执行。

2.静态代码块不能存在于任何方法体内。

3.静态代码块不能直接访问实例变量和实例方法,需要通过类的实例对象来访问。

  • 同步代码块:

使用synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。

3、继承中的代码块加载

B继承A

1.**A 类的静态代码块**
2.**B类的静态代码块**
3.**A 类的构造代码块**
4.**A 类构造方法**
5.**B  类的构造代码块**
6.**B 类构造方法**

1)A 类的静态代码块首先执行,而后B类的静态代码块执行。

2)创建 B 的对象,构造代码块优先于构造方法执行,先看 B 类的构造方法,B 类里的构造方法里有一句隐式的“super()”首先被执行,所以找到 A 类的构造方法,而 A 类的构造方法中也有一句隐式的“super()”执行(调用Object类的构造方法),但并没有什么返回结果,接下来在执行 A 类构造方法的方法体前先执行 A 类的构造代码块(输出”A构造代码块“),然后再执行 A 类构造方法的方法体(输出“A构造方法”),最后又回到 B 类的构造方法中,这时 B 类的super()已经执行完了, 然后在执行 B 类构造方法的方法体前先执行 B 类的构造代码块(输出“B构造代码块”),最后执行 B 类构造方法的方法体(输出“B构造方法”)。


版权声明:本文为qq_43464558原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。