随着JDK 10即将进入其发布候选阶段 ,有趣的是,开始通过JDK 11观察之后会发生什么。 在撰写本文时,四个JEP ( JDK增强建议 )已正式成为JDK 11的目标(可能会出现)。 这篇文章总结了当前针对JDK 11的四个JEP的一些细节。

JEP 309:动态类文件常量

JEP 309 (“动态类文件常量”)“寻求降低创建新形式的可实现类文件常量的成本和中断,从而为语言设计者和编译器实现者提供了更广泛的表达性和性能选择。” JDK错误JDK-8189199 (“最小化ConstantDynamic支持”)“通过正确地解析和解析Hotspot使用的JVM类文件中的新CONSTANT_Dynamic常量来实现JEP 309”,并已在四天前解决。 JEP 309于2017年12月14日正式成为JDK 11的目标。

JEP 318:Epsilon:任意低开销的垃圾收集器

JEP 318 (“ Epsilon:任意低开销的垃圾收集器”)当前声明的目标是“以有限的内存分配限制和最低的延迟开销提供一种完全被动的GC实现,以牺牲内存占用和内存吞吐量为代价。” JEP的摘要目前指出:“开发一个可以处理内存分配但不实现任何实际内存回收机制的GC。 一旦可用的Java堆耗尽,JVM将关闭。” JEP 318与问题JDK-8174901 (“ JEP 318:Epsilon:任意低开销的垃圾收集器”)相关,于2018年1月18日正式成为JDK 11的目标。 有关JEP 318的其他详细信息,可以在在线资源中找到,例如Java Performance的最新领域:删除 针对性能测试 的垃圾收集器和Java垃圾收集器建议 。

JEP 320:删除Java EE和CORBA模块

JEP 320(“删除Java EE和CORBA模块”)具有当前的“摘要”,指出“从Java SE平台和JDK删除Java EE和CORBA模块。 这些模块在Java SE 9中已弃用,声明要在将来的版本中删除它们。” 鉴于当JDK 9引入模块化时CORBA和Java EE模块在Java SE中没有默认可见性 ,因此该JEP并不令人惊讶。 本JEP的“动机”部分提供了深刻的历史背景,说明了为什么Java EE和CORBA模块首先包含在Java SE中。 在“动机”部分的许多其他有趣花絮中,这两个结论对我很突出:

  • “由于可以从第三方站点(例如Maven Central)轻松获得Java EE技术的独立版本,因此不需要Java SE平台或JDK包含它们。”
  • “由于维护CORBA支持的成本超过了收益,因此Java SE平台或JDK没有必要包含它。”

JEP 320列出了将要删除的几个模块和工具。 待删除的模块包括java.xml.wsjava.xml.ws.annotationjdk.xml.wsjava.xml.bindjdk.xml.bind 。 待删除的工具包括wsgen , wsimport , schemagen , xjc和servertool。

JEP 320“风险和假设”部分说明了这些删除的影响。 声明指出,当前使用--add-modules java.xml.bind在其Java 9应用程序中包含JAXB类的开发人员将需要针对JDK 11进行更改。具体地说,JEP文本指出:“该建议假定希望在最新的JDK上编译或运行应用程序可以找到并部署Java EE技术的替代版本。” 幸运的是,JEP 320中的文字做得很好,它提供了许多库和工具的当前替代实现的详细信息,这些库和工具将随JDK 11和JEP 320一起删除。

JEP 320还提到它将删除的大多数模块都是“ 可升级的 ”,这意味着“使用--add-modules java.xml.bind等的JDK 9上的开发人员可以选择依赖于Java EE模块中的任何一个。 JDK运行时映像,或者通过在升级模块路径上部署API JAR文件来覆盖它们。” JEP进一步解释了为什么这样做很重要,因为当从JDK运行时映像中删除模块时,它使得移动到JDK 11变得更加容易。

JEP 320与问题JDK-8189188相关联(“ JEP 320:删除Java EE和CORBA模块”),并于2018年1月26日正式针对JDK 11。

JEP 323:Lambda参数的本地变量语法

JEP 323(“ Lambda参数的本地变量语法”)旨在“允许在声明隐式类型的Lambda表达式的形式参数时使用var ”。

JEP 323与问题JDK-8193259 (“ JEP 323:Lambda参数的本地变量语法”)相关联,昨天( 2018年2月2日 )正式针对JDK 11。

结论

我最希望看到附近的JDK即将发生什么,因为我认为这很有趣。 但是,在某些情况下了解即将发生的事情也有实际优势。 例如, JEP 320提供了有关将在JDK 11中删除的模块和工具的替代方案的详细信息。开发人员可以立即或在迁移到JDK 11之前开始转向那些替代方案,以使将来的过渡更加容易。

翻译自: https://www.javacodegeeks.com/2018/02/early-look-features-targeted-java-11.html

尽早查看针对Java 11的功能相关推荐

  1. 化学专业尽早转行_尽早查看针对Java 11的功能

    化学专业尽早转行 随着JDK 10即将进入其候选发布阶段 ,通过JDK 11观察一下之后将会发生什么是很有趣的. 在撰写本文时,四个JEP ( JDK增强建议 )已正式成为JDK 11的目标(可能会出 ...

  2. JDK 19:针对Java 19的功能

    虚拟线程.switch表达式的模式匹配.vector API和Linux/RISC-V端口将用于Java 19,这是标准Java的非LTS版本,将于9月发布. 定于今年9月发布的Java Develo ...

  3. java的网络功能与编程_Java的网络功能与编程(转载)

    Java的 网络 功能与编程 徐迎晓 (上海大学计算中心25#) 摘  要:Java语言是Internet上最热门的编程语言,本文针对 Java的 网络 功能,对Java从 网络 上获取图象.声音. ...

  4. Java 11将包含更多功能

    Java 11中即将推出的功能是什么?它与Java 9和10有何不同? Java 10可能是新手,但现在该谈论Java 11了.Oracle迈向更快的发布周期意味着更多的特性和功能以比以往更快的速度出 ...

  5. Java 11中的新功能和API详解系列1

    Java 11中的新功能和API详解系列1 2018.9.27 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载. JDK 11在语言语法方面有一个小改动,增加了相当数量的新API,以及 ...

  6. Java 11即将发布的功能–启动单文件源程序

    Java 11即将完成,并且进入了下降阶段 . 好像在几周前就发布了Java 9,而在这里,距离发布Java 11不到几个月. 鉴于Java的新发行过程和时间表,这将变得司空见惯. 不管那是好事,我们 ...

  7. Java 11功能– Java飞行记录器

    在本文中,我们将看到如何利用Java Flight Recorder功能作为Java 11的一部分.之前,它是商业功能之一. 但是,对于带有JEP 328的 Java 11,它是开源的. Java F ...

  8. IntelliJ IDEA 2018.2 发布,支持 Java 11

    转载自   IntelliJ IDEA 2018.2 发布,支持 Java 11 近期,JetBrains发布了其旗舰产品IntelliJ IDEA的2018.2版本.新版本支持即将推出的Java 1 ...

  9. IntelliJ IDEA 2018.2支持Java 11、MacBook Touch Bar等新特性

    近期,JetBrains发布了其旗舰产品IntelliJ IDEA的2018.2版本.新版本支持即将推出的Java 11.断点意图(Breakpoints Intentions).MacBook的To ...

最新文章

  1. 分享一个Go按行读取命令行输入的例子
  2. SIGIR阿里论文 | 可视化理解深度神经网络CTR预估模型
  3. 【ACE Meetup天津站】云计算时代的运维管理
  4. python绘图实例-Python——matplotlib基础绘图函数示例
  5. python 数据分析学什么-python数据分析哪些课程好?
  6. tar用法实例 tar命令
  7. 从零开始入门 K8s | 应用编排与管理
  8. [云炬创业基础笔记]第十一章创业计划书测试5
  9. sql java blob_JAVA和SQL关于BLOB的很大的问题?……
  10. ajax优缺点及原理,Ajax实例解析,异步机制以及优缺点
  11. telerik:RadTreeView树形菜单鼠标放上去展开菜单
  12. 0基础半路转行学IT还来得及吗?
  13. Akka与设备组一起工作《twelve》译
  14. diamond运算符
  15. Arduino ESP32 深度睡眠与外部唤醒(EXT0)
  16. 前后端跨语言RSA加解密和签名验证实现(js+python)
  17. 基于Android开发的仿网易云播放器
  18. 12月29日--Java中有关类与对象的学习记录
  19. 使用Matlab对PIV数据中的dat文件进行读取数据并求平均值
  20. DB2: SQL0902C A system error occurred. Subsequent SQL statements cannot be processed. IBM software

热门文章

  1. Nacos(十)之Kubernetes Nacos
  2. MySQL主从数据库配置和常见问题
  3. JFreeChart(一)之架构
  4. 彻底理解正向代理和反向代理
  5. java导出javadoc文档
  6. Hibernate: You have an error in your SQL syntax; check the manual that corresponds to your MySQL
  7. python正则获取网页标签里面的内容
  8. 树层级处理上万条数据优化!
  9. sh(Spring+Spring mvc+hibernate)——IDeptDao.java
  10. AndroidOkhttp3上传单个文件