【Java学习笔记】41.Java 文档注释及Java 8 新特性

前言

本章介绍Java的文档注释和Java 8 新特性。

Java 文档注释

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

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

说明注释,使你更加方便的记录你的程序信息。

javadoc 标签

javadoc 工具软件识别以下标签:

标签描述示例
@author标识一个类的作者@author描述
@deprecated指名一个过期的类或成员@deprecated描述
{@docRoot}指明当前文档根目录的路径目录路径
@exception标志一个类抛出的异常@exception异常名称说明
{@inheritDoc}从直接父类继承的注释从直接超类继承注释。
{@link}插入一个到另一个主题的链接{@link名称文本}
{@linkplain}插入一个到另一个主题的链接,但是该链接显示纯文本字体插入指向另一个主题的内联链接。
@param说明一个方法的参数@param参数名称说明
@return说明返回值类型@return解释
@see指定一个到另一个主题的链接@see锚
@serial说明一个序列化属性@serial描述
@serialData说明通过writeObject( ) 和 writeExternal( )方法写的数据@serialData描述
@serialField说明一个ObjectStreamField组件@serialField名称类型说明
@since标记当引入一个特定的变化时@since发布
@throws和 @exception标签一样.@throws 标记与@exception标记的含义相同。
{@value}显示常量的值,该常量必须是静态属性。显示常量的值,该常量必须是静态字段。
@version指定类的版本@version信息
文档注释

在开始的 /** 之后,第一行或几行是关于类、变量和方法的主要描述。

之后,你可以包含一个或多个各种各样的 @ 标签。每一个 @ 标签必须在一个新行的开始或者在一行的开始紧跟星号(*).

多个相同类型的标签应该放成一组。例如,如果你有三个 @see 标签,可以将它们一个接一个的放在一起。

下面是一个类的说明注释的实例:

/*** 这个类绘制一个条形图
* @author 鲁努布
* @version 1.2 */
javadoc 输出什么

javadoc 工具将你 Java 程序的源代码作为输入,输出一些包含你程序注释的HTML文件。

每一个类的信息将在独自的HTML文件里。javadoc 也可以输出继承的树形结构和索引。

由于 javadoc 的实现不同,工作也可能不同,你需要检查你的 Java 开发系统的版本等细节,选择合适的 Javadoc 版本。

实例
下面是一个使用说明注释的简单实例。注意每一个注释都在它描述的项目的前面。

在经过 javadoc 处理之后,SquareNum 类的注释将在 SquareNum.html 中找到。

SquareNum.java 文件代码:

导入 Java。io.*;/**
* 这个类演示了文档注释
* @author  阿扬·阿姆赫德
*  @version 1.2  */ 公共类 SquareNum { /**
 * 此方法返回数字的平方。
 * 这是一个多行描述。您可以使用
 *任意数量的行。
 * @param num 要平方的值。
 * @return 平方米。 */ 公共双平方(双  数字) { 返回数字  * 数字;  } /**
 * 此方法输入来自用户的号码。
 * @return 值输入为双精度。
 * @exception IOException 输入错误。
 *  @see  IOException */ public double getNumber() 抛出 IOException {   InputStreamReader isr = new InputStreamReader(系统。在); BufferedReader inData = new   BufferedReader(isr);字符串 str; str = inData。readLine(); 返回(新的双倍(str))。双值();  } /**
 * 此方法演示了 square()。
 * @param参数未使用。
 * @return什么都没有。
 * @exception IOException 输入错误。
 *  @see  IOException */ public static void main(String args[]) 抛出 IOException  {  SquareNum ob = new SquareNum(); 双值; 系统。输出.</B1178>);
   }
}

如下,使用 javadoc 工具处理 SquareNum.java 文件:

$ javadoc SquareNum.java
Loading source file SquareNum.java...
Constructing Javadoc information...
Standard Doclet version 1.5.0_13
Building tree for all the packages and classes...
Generating SquareNum.html...
SquareNum.java:39: warning - @return tag cannot be used\
                      in method with void return type.
Generating package-frame.html...
Generating package-summary.html...
Generating package-tree.html...
Generating constant-values.html...
Building index for all the packages and classes...
Generating overview-tree.html...
Generating index-all.html...
Generating deprecated-list.html...
Building index for all classes...
Generating allclasses-frame.html...
Generating allclasses-noframe.html...
Generating index.html...
Generating help-doc.html...
Generating stylesheet.css...
1 warning
$
Java 8 新特性

Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的 Stream API 等。

新特性

Java8 新增了非常多的特性,我们主要讨论以下几个:

  • Lambda 表达式 − Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。
  • 方法引用 −方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。
  • 默认方法 − 默认方法就是一个在接口里面有了一个实现的方法。
  • 新工具 − 新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。
  • Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。
  • Date Time API − 加强对日期与时间的处理。
  • Optional 类 − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。
  • Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

在关于 Java 8 文章的实例,我们均使用 jdk 1.8 环境,你可以使用以下命令查看当前 jdk 的版本:

$ java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
编程风格

Java 8 希望有自己的编程风格,并与 Java 7 区别开,以下实例展示了 Java 7 和 Java 8 的编程格式:

Java8Tester.java 文件代码:

导入 Java。实用。收藏;导入 Java。实用。列表;导入 Java。实用。数组列表;导入 Java。实用。比较器; public class Java8Tester  { public  static void main(String args[]){  List<String> names1 = new ArrayList<String>(); 名称1.add(“谷歌”); 名称1.add(“csdn ”); 名称1.添加(“淘宝”); 名称1.添加(“百度”); 名称1.add(“新浪”); List<String> names2 = new ArrayList<String>();  名称2.add(“谷歌”); 名称2.add(“csdn ”); 名称2.添加(“淘宝”); 名称2.添加(“百度”); 名称2.add(“新浪”); Java8Tester tester = new Java8Tester(); 系统。出。println(“使用 Java 7 语法: ”); 测试人员。sortUsingJava7(names1); 系统.出。println(names1); 系统。出。println(“使用 Java 8 语法: ”); 测试人员。sortUsingJava8(names2); 系统。出。println(names2);  } // 使用 java 7 排序 private void sortUsingJava7(List<String> names){ Collections.sort(names, new Comparator<String>() { @Override public int compare(String s1, 字符串 s2) { 返回 s1.比较到(s2);  } });  } // 使用 java 8 排序 private void sortUsingJava8(List<String> names){ Collections.sort(names, (s1,  s2) -> s1.比较到(s2));
   }
}

执行以上脚本,输出结果为:

$ javac Java8Tester.java
$ java Java8Tester
使用 Java 7 语法: 
[Baidu , Google , csdn , Sina , Taobao ]
使用 Java 8 语法: 
[Baidu , Google , csdn , Sina , Taobao ]

接下来我们将详细为大家简介 Java 8 的新特性:

序号特性
1Lambda 表达式
2方法引用
3函数式接口
4默认方法
5
6可选类
7Nashorn, JavaScript 引擎
8新的日期时间 API
9基地64
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海棠赠微雨.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值