【Java学习笔记】41.Java 文档注释及Java 8 新特性
创始人
2025-06-01 14:43:21
0

前言

本章介绍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(); 双值; 系统。输出.);}
}

如下,使用 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 names1 = new ArrayList(); 名称1.add(“谷歌”); 名称1.add(“csdn ”); 名称1.添加(“淘宝”); 名称1.添加(“百度”); 名称1.add(“新浪”); List names2 = new ArrayList();  名称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 names){ Collections.sort(names, new Comparator() { @Override public int compare(String s1, 字符串 s2) { 返回 s1.比较到(s2);  } });  } // 使用 java 8 排序 private void sortUsingJava8(List 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

相关内容

热门资讯

iPhone手机怎么玩安卓系统... 你有没有想过,你的iPhone手机竟然也能玩安卓系统?没错,就是那个一直以来让你觉得遥不可及的安卓世...
平板删安卓系统更新不了,原因及... 最近是不是你也遇到了这样的烦恼?平板电脑上的安卓系统更新不了,是不是让你头疼得要命?别急,今天就来给...
苹果组装机安卓系统卡,卡顿背后... 你有没有发现,最近用苹果手机的时候,有时候系统有点卡呢?这可真是让人头疼啊!你知道吗,其实这背后还有...
安卓系统原生浏览器,功能与体验... 你有没有发现,每次打开手机,那个小小的浏览器窗口总是默默无闻地在那里,陪你浏览网页、搜索信息、看视频...
安卓机如何上苹果系统,跨平台体... 你是不是也和我一样,对安卓机和苹果系统之间的切换充满了好奇?想象你的安卓手机里装满了各种应用,而苹果...
安卓导入系统证书失败,原因分析... 最近在使用安卓手机的时候,你是不是也遇到了一个让人头疼的问题——导入系统证书失败?别急,今天就来给你...
安卓原生系统有哪些手机,盘点搭... 你有没有想过,为什么有些手机用起来就是那么流畅,那么顺心呢?这背后可大有学问哦!今天,就让我带你一起...
安卓系统关机了怎么定位,安卓系... 手机突然关机了,是不是有点慌张呢?别担心,今天就来教你一招,让你的安卓手机即使关机了,也能轻松定位到...
安卓系统游戏加速器,畅享无延迟... 你有没有发现,手机游戏越来越好玩了?不过,有时候游戏体验可能并不那么顺畅,是不是因为手机性能不够强大...
安卓4系统天气功能,尽在掌握 安卓4系统天气功能大揭秘在当今这个数字化的世界里,手机已经不仅仅是一个通信工具,它更是一个集成了各种...
安卓系统如何玩碧蓝幻想,攻略与... 你有没有想过,在安卓系统上玩《碧蓝幻想》竟然可以这么酷炫?没错,就是那个让你沉迷其中的二次元大作!今...
安卓系统搜不到图朵,图朵生成之... 最近是不是你也遇到了这样的烦恼?手机里明明有那么多美美的图片,但是用安卓系统搜索的时候,却怎么也找不...
魁族8刷安卓系统,系统升级后的... 哇,你知道吗?最近在安卓系统圈子里,有一个话题可是引起了不小的轰动,那就是魁族8刷安卓系统。你是不是...
微信正版安装安卓系统,畅享沟通... 你有没有想过,你的微信是不是正版安装的安卓系统呢?这可不是一个小问题哦,它关系到你的微信使用体验和隐...
电视能刷安卓系统吗,电视也能刷... 电视能刷安卓系统吗?揭秘智能电视的无限可能想象你家的电视不再只是用来观看节目的工具,而是变成了一个功...
安卓系统开通通知功能,畅享智能... 你知道吗?最近安卓系统更新后,新增了一个超级实用的功能——开通通知功能!这可是个大喜事,让咱们的生活...
苹果系统安卓爱思助手,系统兼容... 你有没有发现,手机的世界里,苹果系统和安卓系统就像是一对欢喜冤家,总是各有各的粉丝,各有各的拥趸。而...
安卓系统占用很大内存,揭秘内存... 手机里的安卓系统是不是让你感觉内存不够用,就像你的房间堆满了杂物,总是找不到地方放新东西?别急,今天...
安卓系统p30,安卓系统下的摄... 你有没有发现,最近安卓系统P30在手机圈里可是火得一塌糊涂呢!这不,我就来给你好好扒一扒这款手机的那...
siri被安卓系统进入了,智能... 你知道吗?最近科技圈可是炸开了锅,因为一个大家伙——Siri,竟然悄悄地溜进了安卓系统!这可不是什么...