阅读更多

3顶
1踩

编程语言

原创新闻 Java 9 正式发布,终落地 Jigsaw 项目

2017-09-25 09:44 by 副主编 jihong10102006 评论(5) 有18171人浏览
引用
文章来源: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 年。
  • 大小: 68 KB
  • 大小: 90.8 KB
  • 大小: 200.7 KB
  • 大小: 43.2 KB
  • 大小: 32.6 KB
  • 大小: 23.6 KB
  • 大小: 342.2 KB
  • 大小: 103.9 KB
  • 大小: 29.5 KB
  • 大小: 83.2 KB
  • 大小: 74.2 KB
  • 大小: 22.8 KB
  • 大小: 107.3 KB
  • 大小: 25.1 KB
  • 大小: 127 KB
  • 大小: 235.3 KB
  • 大小: 40.6 KB
  • 大小: 90.6 KB
  • 大小: 180.2 KB
3
1
评论 共 5 条 请登录后发表评论
5 楼 Lixh1986 2017-10-13 10:53
面向对象编程?
一切皆对象!才可以编程。
好麻烦啊!!
编程前得先定义好对象,才能编程。
好麻烦啊!!
4 楼 tedeum 2017-09-27 08:43
java 就喜欢简单事情复杂化,也许是我没接触过太大的项目,感觉用不上。
3 楼 zhangthe9 2017-09-25 12:15
很烦 lombok 的delombok 好像还没支持好
idea64.exe 启动,还没整明白如何用jre9作自身启动环境,idea.bat 启动是可以
2 楼 低调的江湖小生 2017-09-25 10:33
java SE 还没学会,又出了新玩意,这是要累死一头牛的节奏么??
1 楼 lixuejian 2017-09-25 10:20
   

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • java se 9_Java 9 正式发布,终落地 Jigsaw 项目

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

  • Java 9 正式发布,新特性研究

    2011年加入 Oracle Java 团队,经历了从 JDK 7 到 JDK 9 的研发过程,目前领导 Java 核心类库团队,专注于 JDK 核心类库新特性的测试和开发,希望对 Java 技术的演进和普及做出贡献。加入 Oracle 前,就职于 IBM,...

  • Java 9正式发布,新特性解读

    在历经多次跳票之后,Java 9 终于在千呼万唤中正式发布。从这个版本开始,Java 将每半年发布一个版本。作为霸占编程语言排行榜鳌头多年的老牌语言,Java 9 中有哪些不得不说的新特性?Java 语言的未来又将如何? ...

  • swift 4 java_Java 9 和 Swift 4 正式发布;PostgreSQL 1

    摘要本周热门软件更新 — 国内自主物联网操作系统 RT-Thread 3.0 发布;zbus 0.9.0 新版发布,MQ、RPC、...Gitlab 10.0发布,代码托管平台 终于,期待已久的 Java 9 正式发布了!经过 4 次跳票,历经曲折的 Java 9...

  • java 模块化系统_java9新特性-4-模块化系统: Jigsaw与Modularity

    产生背景及意义谈到 Java 9 大家往往第一个想到的就是 Jigsaw 项目。众所周知,Java 已经发展超过 20 年(95 年最初发布),Java 和相关生态在不断丰富的同时也越来越暴露出一些问题:①Java 运行环境的膨胀和臃肿。...

  • java9新特性(简述十大新特性)

    java 9 提供了超过 150 项新功能特性,包括备受期待的模块化系统、可交互的 REPL 工具:jshell,JDK 编译工具,Java 公共 API 和私有代码,以及安全增强、扩展提升、性能管理改善等。可以说 Java 9 是一个庞大的系统...

  • Java 9 模块化(Modular)介绍

    今年,2017年,我们将迎来 Java 语言的 22 岁生日,22岁,对于一个人而言,正是开始大展鸿图的年纪,可是对于日新月异的科技圈中的一门开发语言而言,却是一个傲视群雄的老态龙钟的年纪。 感谢 互联居 的技术分享...

  • 期待已久的Java 9 今日正式发布,新特性解读

    相关阅读:300本计算机编程的经典书籍下载45岁以后的IT人生三十岁还没做到管理层的人,后来都怎么样了?人们期待已久的Java SE 9.0将在2017年9月21日发布,...

  • java 9 新特性

    java 9经历了几次跳票后,最终在2017年9月21日发布。 1.1java 9 中提供了哪些新特性? java 9 提供了超过 150 项新功能特性,包括备受期待的模块化系统、可交互的 REPL 工具:jshell,JDK 编译工具,Java 公共 API...

  • Java 9 模块化 (Modular) 介绍

    前言今年,2017年,我们将迎来 Java 语言的 22 岁生日,22岁,对于一个人而言,正是开始大展鸿图的年纪,可是对于日新月异的科技圈中的一门开发语言而言,却是一个傲视群雄的老态龙钟的年纪。JVM 语言发展史JVM 家族...

  • Java9新特性系列(模块化系统: Jigsaw->Modularity)

    谈到Java9大家往往第一个想到的就是Jigsaw项目。众所周知,Java已经发展超过20年(95年最初发布),Java和相关生态在不断丰富的同时也越来越暴露出一些问题: Java运行环境的膨胀和臃肿 。每次JVM启动的时候,至少会...

  • 从 Java 9 开始,Java 就华丽的转身为微服务了…

    继 2014 年 3 月Java 8发布之后,时隔 4 年,2018 年 9 月,Java 11 如期发布,其间间隔了 Java 9 和 Java 10 两个非LTS(Long Term Support)版本。 作为最新的LTS版本,相比Java 8,Java 11 包含了模块系统、改用...

  • 计算机发展与计算机应用概述.pdf

    计算机发展与计算机应用概述.pdf

  • 计算机二级公共基础知识全集合.pdf

    计算机二级公共基础知识全集合.pdf

  • 计算机机试答案.pdf

    计算机机试答案.pdf

  • 基于STM32F103的750W全桥逆变器并离网设计方案及其实现

    内容概要:本文详细介绍了基于STM32F103RCT6的750W全桥逆变器设计方案,涵盖硬件电路设计、软件编程以及保护机制等方面。硬件部分包括主控芯片的选择、PWM配置、Boost升压电路、PCB布局优化等;软件部分涉及并离网切换的状态机设计、过流保护、风扇控制算法、并机功能实现等。文中还分享了许多实战经验和调试技巧,如死区时间配置、电流采样方法、并网同步算法等。 适合人群:具有一定电子电路和嵌入式开发基础的技术人员,尤其是从事逆变器及相关电力电子产品开发的工程师。 使用场景及目标:适用于希望深入了解逆变器工作原理和技术实现的开发者,特别是那些需要掌握并离网切换、高效电源管理及可靠保护机制的人群。目标是帮助读者构建一个稳定可靠的逆变器系统,能够应对各种复杂的工作环境。 其他说明:本文不仅提供了详细的理论讲解,还有丰富的代码片段和实践经验分享,有助于读者更好地理解和应用相关技术。

  • 基于Simulink的单相全桥逆变器仿真与优化:MATLAB环境下的详细实现

    内容概要:本文详细介绍了如何利用Simulink在MATLAB环境中搭建单相全桥逆变器的仿真模型。首先,通过构建H桥结构,连接直流电源和RL负载,并引入PWM控制器进行开关管的控制。接着,针对仿真过程中遇到的各种问题,如谐波失真、开关管直通等问题,提出了具体的解决方案,包括加入LC滤波器、设置死区时间和优化PWM参数等。此外,还探讨了通过MATLAB脚本自动化测试不同参数组合的方法,以及如何提高电压利用率和降低谐波失真。最终,通过对仿真结果的分析,验证了所提方法的有效性和优越性。 适合人群:电力电子工程师、科研人员、高校学生等对逆变器仿真感兴趣的群体。 使用场景及目标:适用于研究和开发高效、稳定的逆变器系统,旨在通过仿真手段减少实验成本,优化设计方案,提高系统的性能指标。 其他说明:文中提供了详细的建模步骤和技术细节,帮助读者更好地理解和掌握相关技术和方法。同时,强调了仿真参数的选择和优化对于获得理想仿真结果的重要性。

  • 计算机红外通信.pdf

    计算机红外通信.pdf

  • 软考考试学习必备资料.md

    软考考试学习必备资料.md

  • 基于cornerstonejs开发移动端

    基于cornerstonejs开发移动端

Global site tag (gtag.js) - Google Analytics