示例带你提前了解 Java 9 中的新特性(2)

有关接口私有方法新特性的更多信息,可访问我的初体验之: Java 9 Private methods in Interface

4. Java 9 Module System

Java 9 新特性中最大的一个变化就是 Module System。Oracle 公司将引入如下特性作为 Jigsaw Project 的一部分:

Modular JDK

Modular Java Source Code

Modular Run-time Images

Encapsulate Java Internal APIs

Java Platform Module System

Java SE 9 版本之前,我们使用 Monolithic Jars 来开发基于 Java 语言的应用程序。这种体系架构有许多局限性和缺点。为了避免这些缺陷,Java SE 9 迎来了 Module System。

JDK 9 包含有 92 个 modules(当然也可能在最终发布版中有所变化)。我们可以使用 JDK Modules,也能创建我们自己的 modules,如:

简单 Module 示例

module com.foo.bar { }

这里我们使用 module 关键字创建了一个简单的 module。每个 module 都有一个名字,对应代码和其它一些资源。

想了解更多有关这个新体系架构和亲自动手体验的话,可以参考这里我的体验之:

Java 9 Module System Basics

Java 9 Module System Examples

5. Process API Improvements

Java SE 9 迎来一些 Process API 的改进,通过添加一些新的类和方法来优化系统级进程的管控。

Process API 中的两个新接口:

java.lang.ProcessHandle

java.lang.ProcessHandle.Info

Process API 示例

ProcessHandle currentProcess = ProcessHandle.current(); System.out.println("Current Process Id: = " + currentProcess.getPid());

想了解更多新 API 的信息,可以通过参考我的初体验之:Java SE 9: Process API Improvements。

6. Try With Resources Improvement

我们知道,Java SE 7 引入了一个新的异常处理结构: Try-With-Resources ,来自动管理资源。这个新的声明结构主要目的是实现“Automatic Better Resource Management”(“自动资源管理”)。

Java SE 9 将对这个声明作出一些改进来避免一些冗长写法,同时提高可读性。

Java SE 7 示例

void testARM_Before_Java9() throws IOException{ BufferedReader reader1 = new BufferedReader(new FileReader("journaldev.txt")); try (BufferedReader reader2 = reader1) { System.out.println(reader2.readLine()); } }

Java SE 9 示例

void testARM_Java9() throws IOException{ BufferedReader reader1 = new BufferedReader(new FileReader("journaldev.txt")); try (reader1) { System.out.println(reader1.readLine()); } }

有关这个特性的更多信息,可以参考我的初体验之: Java 9 Try-With-Resources Improvements

7. CompletableFuture API Improvements

在 Java SE 9 中,Oracle 公司将改进 CompletableFuture API 来解决一些 Java SE 8 中出现的问题。这些被添加的 API 将用来支持一些延时和超时操作,实用方法和更好的子类化。

Executor exe = CompletableFuture.delayedExecutor(50L, TimeUnit.SECONDS);

这里的 delayedExecutor() 是静态实用方法,用来返回一个在指定延时时间提交任务到默认执行器的新 Executor 对象。

有关这个特性的更多信息,请访问我的初体验之:Java SE 9: CompletableFuture API Improvements。

8. Reactive Streams

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7bd0569eb9a2e0e540e2a76342a15db5.html