查看原文
其他

Java 9 正式发布,终落地 Jigsaw 项目

2017-09-22 屠敏 CSDN

点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!


9 月 21 日,大家期待已久的 Java 9 终于正式发布了,本文与大家一起快速回顾一下 IntelliJ IDEA 中 Java 9 的支持,并了解 IntelliJ IDEA 2017.3 中针对 Java 9 的推出的新功能。


Jigsaw 和 JPMS


提及 Java 9,最大的功能莫过于 Jigsaw 项目下的核心 Java 平台模块化系统(JPMS,Java Platform Module System) 。 Jigsaw 本身是一项很有野心的项目,它的目标是改进 Java SE 平台,使其可以适应不同大小的计算设备;改进其安全性,可维护性,提高性能;简化各种类库和大型应用的开发和维护,包括 JDK 本身的模块化。


IntelliJ IDEA 支持具有许多功能的 Java 平台模块化系统。


首先开发者可以轻松地为 IntelliJ IDEA 模块创建一个 module-info.java 文件:



这将给出模块声明的基本结构,包括与 IntelliJ IDEA 模块名称相匹配的模块名称。 当开发者在 module-info.java 文件中编码时,代码会高亮显示。




倘若开发者从带有 module-info.java 文件的模块中运行代码,IntelliJ IDEA 将自动使用 -p 参数(模块路径)而不是 -classpath。



IntelliJ IDEA 也针对将代码迁移到 JPMS 时出现的常见问题提供了快速修复功能,比如添加“require”指令。



或自动检测重复的指令及其他可以修复的错误。



开发者还可以通过 IntelliJ IDEA 创建模块图,以可视化正在使用的模块。 此外,也能看到 JDK 模块、自己创建的模块等等,如下图所示。



当开发者开始使用模块化时,这些图表就能起到很好的作用,其可以帮助开发者了解正在使用哪些模块以及模块的架构,甚至可以直接从图中定位到具体的模块代码。


IntelliJ IDEA 也会帮助将代码迁移到 Java 9。例如,用户可以高亮显示使用的动态模块。



这意味着开发者可以看到一些并非是 Java 9 模块的内容。 这很重要,因为这些动态模块可能会随时间而改变。



了解有关 IntelliJ IDEA 中模块的基本支持的更多信息,以及模块图和其他快速修复。


便利的工厂方法


Java 9 引入了许多小的 API 更改,使开发人员更轻松。 其中之一是简化具有固定内容集合的创建。在 IntelliJ IDEA 中可以查找到改功能。



如下图所示,高亮的代码即是使用 Java 9 的工厂方法简化之后的效果。



Thread.onSpinWait


Java 9 提供了 JVM 的提示。 具体来说,如果开发人员的代码在循环中等待,那么就可以使用 Thread.onSpinWait 来让运行时知道。 IntelliJ IDEA 查找代码,添加这个功能可能会使用到。



增强的弃用


在 Java 9 有一个看似较小的功能,但可以让开发人员更容易了解其代码的影响,这个就是增强的弃用。 现在,@Deprecated 标签支持两个有用的新属性:“since”和“forRemoval”。 在 IntelliJ IDEA 2017.3 中进行了新的检查,高亮显示使用已被标记为“forRemoval”的代码。



如果已经打开此检查并将其设置为“警告”(这是默认值),那么被标记为“forRemoval”的内容,在 IntelliJ IDEA 将以红色杠显示此方法,而不是以往的黑色。



JShell 工具


Java 9 首次提供 Java 的 REPL (Read-Eval-Print-Loop,读入-求值-打印-循环)功能,称为JShell 工具。它的目的在于以即时结果和反馈的形式,简化原型的实现并帮助我们探索语言在编码时的可选项。用户可以从命令行或 IntelliJ IDEA 中的终端运行 REPL。 此外,IntelliJ IDEA 2017.3 还具有一个基本控制台,可从 IDE 内部使用 JShell,类似于 Groovy Console。



开发者可以使用控制台来尝试代码片段,也可以选择运行此代码的模块路径。



该功能目前仅能在 2017.3 EAP 中可用。


无须额外的支持


Java 9 中有许多新功能,包括对 Streams API 的更改、可选的附加功能、接口上的私有方法等等。



如果项目 SDK 设置为 Java 9,那么这些新方法在编码期间都可以使用了。



另外,还可以使用 IntelliJ IDEA 常见功能来挖掘一些 Java 9 的功能。 比如,在生成文档时通过添加标志来生成 HTML 5 Javadoc。



开发者甚至可以使用 IntelliJ IDEA 创建 Multi-Release JAR 文件。 这也许是建立 Gradle、Maven 或 Ant 等工具的最佳选择,至于这些,未来可能在 IntelliJ IDEA 博客中更新。


最后,Oracle 宣布今后会按照每六个月一次的节奏进行发布!这意味着 Java 9 是最后一次“keystone”特性驱动的版本发布。Oracle还表示,Java 8 目前仍可继续使用,它的支持时间将延续到 2022 年。


JDK 9 完整的变更列表:https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-825576B5-203C-4C8D-85E5-FFDA4CA0B346


-------- 热闻回顾 --------

十年编程,是人玩技术还是技术玩人?


十大最受欢迎的 React Native 应用开发编辑器


作为程序员的你,除了撸代码,还能干什么?


2017年最受欢迎的10个编程挑战网站



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存