【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

相关内容

热门资讯

电视安卓系统哪个品牌好,哪家品... 你有没有想过,家里的电视是不是该升级换代了呢?现在市面上电视品牌琳琅满目,各种操作系统也是让人眼花缭...
安卓会员管理系统怎么用,提升服... 你有没有想过,手机里那些你爱不释手的APP,背后其实有个强大的会员管理系统在默默支持呢?没错,就是那...
安卓系统软件使用技巧,解锁软件... 你有没有发现,用安卓手机的时候,总有一些小技巧能让你玩得更溜?别小看了这些小细节,它们可是能让你的手...
安卓系统提示音替换 你知道吗?手机里那个时不时响起的提示音,有时候真的能让人心情大好,有时候又让人抓狂不已。今天,就让我...
安卓开机不了系统更新 手机突然开不了机,系统更新还卡在那里,这可真是让人头疼的问题啊!你是不是也遇到了这种情况?别急,今天...
安卓系统中微信视频,安卓系统下... 你有没有发现,现在用手机聊天,视频通话简直成了标配!尤其是咱们安卓系统的小伙伴们,微信视频功能更是用...
安卓系统是服务器,服务器端的智... 你知道吗?在科技的世界里,安卓系统可是个超级明星呢!它不仅仅是个手机操作系统,竟然还能成为服务器的得...
pc电脑安卓系统下载软件,轻松... 你有没有想过,你的PC电脑上安装了安卓系统,是不是瞬间觉得世界都大不一样了呢?没错,就是那种“一机在...
电影院购票系统安卓,便捷观影新... 你有没有想过,在繁忙的生活中,一部好电影就像是一剂强心针,能瞬间让你放松心情?而我今天要和你分享的,...
安卓系统可以写程序? 你有没有想过,安卓系统竟然也能写程序呢?没错,你没听错!这个我们日常使用的智能手机操作系统,竟然有着...
安卓系统架构书籍推荐,权威书籍... 你有没有想过,想要深入了解安卓系统架构,却不知道从何下手?别急,今天我就要给你推荐几本超级实用的书籍...
安卓系统看到的炸弹,技术解析与... 安卓系统看到的炸弹——揭秘手机中的隐形威胁在数字化时代,智能手机已经成为我们生活中不可或缺的一部分。...
鸿蒙系统有安卓文件,畅享多平台... 你知道吗?最近在科技圈里,有个大新闻可是闹得沸沸扬扬的,那就是鸿蒙系统竟然有了安卓文件!是不是觉得有...
宝马安卓车机系统切换,驾驭未来... 你有没有发现,现在的汽车越来越智能了?尤其是那些豪华品牌,比如宝马,它们的内饰里那个大屏幕,简直就像...
p30退回安卓系统 你有没有听说最近P30的用户们都在忙活一件大事?没错,就是他们的手机要退回安卓系统啦!这可不是一个简...
oppoa57安卓原生系统,原... 你有没有发现,最近OPPO A57这款手机在安卓原生系统上的表现真是让人眼前一亮呢?今天,就让我带你...
安卓系统输入法联想,安卓系统输... 你有没有发现,手机上的输入法真的是个神奇的小助手呢?尤其是安卓系统的输入法,简直就是智能生活的点睛之...
怎么进入安卓刷机系统,安卓刷机... 亲爱的手机控们,你是否曾对安卓手机的刷机系统充满好奇?想要解锁手机潜能,体验全新的系统魅力?别急,今...
安卓系统程序有病毒 你知道吗?在这个数字化时代,手机已经成了我们生活中不可或缺的好伙伴。但是,你知道吗?即使是安卓系统,...
奥迪中控安卓系统下载,畅享智能... 你有没有发现,现在汽车的中控系统越来越智能了?尤其是奥迪这种豪华品牌,他们的中控系统简直就是科技与艺...