JDK 9 有啥新东西(一)

What’s New in Oracle JDK 9

https://docs.oracle.com/javase/9/whatsnew/toc.htm[英文原文]

E77563-05

September 2017

Overview of What’s New in JDK 9

JavaSE 9 是一个大版本. 下边是 Oracle JavaSE 9 及 JDK 9 的一些特性及改进。

一条 JEP 是为 JDK 设计及实现改进的提议。
http://openjdk.java.net/jeps/1[查看 JEP 1: JDK 改进提议及处理流程。]
JSR 描述了对 Java 平台的提议及最终确认的标准。
https://www.jcp.org/en/jsr/overview[看 JSR 介绍。]

JDK 9 中的关键改变

These changes affect more than one technology area.
这些改变影响多种技术领域。

|特性 |说明
|Java 模块系统 |Java 模块化系统引入了一种新的编程组件 —— 模块,模块自声明了一系列代码及数据。模块系统:

  • 在编译阶段及运行阶段引入新的阶段(可选)——链接过程,此阶段一系列模块可以组装并优化成特定的运行时镜像(image);
    查看 JavaSE 工具参考中的 https://docs.oracle.com/javase/9/tools/jlink.htm[jlink] 工具说明。

  • javac、jlink、java 等工具都增加了模块路径选项,指明模块定义位置。

  • 引入模块化 JAR 文件,JAR 文件根目录中的 module-info.class 文件。

  • 引入 JMOD 格式,类似 JAR 的一个打包格式,但是 JMOD 可以打包原生代码及配置文件;查看 jmod 工具。(TODO)
    The JDK itself has been divided into a set of modules. This change:

JDK 本身也拆分成了一系列模块,包括:

  • 支持 JDK 模块组合成多种配置,包括:

    • JRE 及 JDK 对应配置。
    • 近似 Java SE 8 中定义的 http://openjdk.java.net/jeps/161[紧凑模式]。
    • 只包含特定模块及相关模块的定制配置。
  • 为容纳模块及提升性能、安全及可维护性,重新组织 JDK 及 JRE 运行镜像。

  • 为避免暴露存储在镜像中的命名模块、类、资源内容的结构或格式,定义新的 URI 模式。

  • 删除 endorsed-standards 重载及扩展机制。

  • 从 Java 运行时镜像中删除 rt.jartools.jar

  • JDK 内部 API 默认不可访问,一些关键、广泛使用的会直到大部分功能有替代品时不可访问。
    运行命令 jdeps -jdkinternals 检查你的代码使用了哪些 JDK 内部 API。

更多信息请参阅:

  • http://openjdk.java.net/projects/jigsaw/spec/[Java 模块系统]

  • http://openjdk.java.net/jeps/261[JEP 261: 模块系统]

  • http://openjdk.java.net/jeps/200[JEP 200: JDK 模块化]

  • http://openjdk.java.net/jeps/220[JEP 220: 运行时镜像模块化]

  • http://openjdk.java.net/jeps/260[JEP 260: 封闭大多数内部 API]

|JEP 223: 新的版本号编码方式
|
提供简单的版本号格式明确区分主版本、小版本、安全版本及修正版本更新发布

新的版本号格式如:
MINOR.PATCH

$MAJOR 在主版本发布时增加。
如 JDK 9, 包含大量的 Java SE 标准指定的新特性。
主版本包含很早就计划并公布要增加的新特性及现有特性修改。

$MINOR 在小版本更新时增加,如问题修正,标准 API 修正,或者实现 Java 之外标准。

$SECURITY 在安全更新发布时增加,包含关键修正及提升安全性修改。

$PATCH 是包含安全及经过测试的高优先级客户的问题修正。

查看 JavaSE 安装指南中的 https://docs.oracle.com/javase/9/install/version-string-format.htm[新版本号格式]
|###

JDK 9 安装程序更新

JDK 9 增强了 Microsoft Windows 及 macOS 平台安装程序。

Microsoft Windows 安装程序增强
|###
|特性 |说明
|安装程序界面中可以启用或禁用 Web Deployment
|在安装程序欢迎页提供启用或禁用 Web Deployment 选项。
要启用 Web Deployment ,在欢迎页面选择定制安装,点击安装后在浏览器复选框中选择启用 Java 内容。
|###

macOS 安装程序增强

|###
|Feature |Description
|CPU 版本号
|卸载当前 CPU 版本后新 CPU 版本可用时提供通知。

|用户体验
|提升 JRE 升级用户体验。
|###

JDK 9 工具更新

JDK 9 中这些工具有增强。
|###
|特性 |说明

|JEP 222: jshell: Java 命令行 (Read-Eval-Print Loop)(**老唐:直接输入 jshell 进入命令行模式,可以写简单的代码直接允许)
|Java 平台增加了 Read-Eval-Print Loop (REPL) 功能。

jshell 工具提供了命令行接口用于执行 Java 语言的声明、语句及表达式

jshell 即时反馈能方便原型试验及探索代码不同参数选项。

即时反馈加上启动表达式对于学习 Java 语言或者新的 API 或新特性都很有帮助。

参考 JavaSE 工具参考中的 https://docs.oracle.com/javase/9/tools/jshell.htm[jshell] ,及 JavaSE Java Shell 用户指南中的 https://docs.oracle.com/javase/9/jshell/introduction-jshell.htm[JShell 介绍]

The JShell API enables applications to leverage REPL functionality. See the jdk.jshell package.

JShell API 允许应用程序借助 REPL 功能。参考 https://docs.oracle.com/javase/9/docs/api/jdk.jshell-summary.html[jdk.jshell] 包.

你可能感兴趣的:(JDK 9 有啥新东西(一))