文章目录

  • JEP 371: Hidden Classes
  • JEP 372: 删除 Nashorn JavaScript Engine
  • JEP 377: 新的垃圾回收器ZGC正式上线了
  • JEP 378: Text Blocks 标准化
  • JEP 379: 新的垃圾回收器Shenandoah上线
  • 总结

JDK 15 JAVA 15的新特性展望

伴随着2020的寒冬和新冠病毒的肆虐,JAVA迎来了久未已久的JAVA 14。自从2017年JAVA 9发布之后,JAVA的发布版本跟上了敏捷开发的步伐,小步快跑,Java平台发布节奏已从每3年以上的主要版本转变为每6个月发布一次功能。现在,每年的3月和9月都会发布新的版本功能。

三月已过,九月还远吗?

在JAVA 14中,推出了swith的最终版本,并且支持了NVM。

今天本文将会展望一下JAVA 15中会带给我们的新特性。

总体来说有5个JEP将会提交到JAVA 15。

什么?你问我JEP是什么?

JEP的全称就是JDK Enhancement Proposals,简单点讲就像是一个个对JAVA进行改进提案,这些提案会在合适的时间合适的地点被加入JDK的特定版本。

下面看下5大提案都有些什么内容:

JEP 371: Hidden Classes

通常我们在使用大型的框架或者lambda表达式的时候,会动态生成很多类。但是不幸的是标准的定义类的API:ClassLoader::defineClass 和 Lookup::defineClass不能够区分出这些类是动态生成(运行时生成)的还是静态
生成(编译生成)的。

一般来说动态生成的类生命周期更短,并且其可见性要更低。但是现有的JDK并没有这个功能。

所有有了Hidden Classes的提案,通过Hidden Classes,不管是JDK还是JDK外部的框架,在生成动态类的时候都可以定义为Hidden Classes,这样可以更加有效的控制这些动态生成类的生命周期和可见性。

JEP 372: 删除 Nashorn JavaScript Engine

实际上jdk.scripting.nashorn和jdk.scripting.nashorn.shell这两个在JDK11的时候已经被标记为deprecated。在JDK15中只是把他们删除而已。

JEP 377: 新的垃圾回收器ZGC正式上线了

Z Garbage Collector(ZGC)是在JAVA 11中引入的垃圾回收器,但一直都是实验版本,在JDK 15中,终于要上线了。

ZGC是一个重新设计的并发的垃圾回收器,可以极大的提升GC的性能。

JEP 378: Text Blocks 标准化

Text Blocks第一次是在JDK 13中以预览功能出现的JEP 355。然后在JDK 14中又出现了第二个版本JEP 368。终于在JDK 15中可以有最终版本了。

文本块是一种多行字符串文字,它避免了大多数转义序列的需要,以一种可预测的方式自动设置字符串的格式。

HTML example

传统方式:

String html = "<html>\n" +"    <body>\n" +"        <p>Hello, world</p>\n" +"    </body>\n" +"</html>\n";

文本块方式:

String html = """<html><body><p>Hello, world</p></body></html>""";

SQL example

传统方式:

String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" +"WHERE `CITY` = 'INDIANAPOLIS'\n" +"ORDER BY `EMP_ID`, `LAST_NAME`;\n";

文本块方式:

String query = """SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`WHERE `CITY` = 'INDIANAPOLIS'ORDER BY `EMP_ID`, `LAST_NAME`;""";

JEP 379: 新的垃圾回收器Shenandoah上线

Shenandoah和ZGC一样,是以实验特性在JAVA 12中引入的JEP 189。现在终于要在JAVA 15中转正了。

总结

上述就是5大很可能在JAVA 15中实现的新特性,希望大家能够喜欢。

欢迎关注我的公众号:程序那些事,更多精彩等着您!

更多内容请访问 www.flydean.com

JDK 15 JAVA 15的新特性展望相关推荐

  1. Java:JDK 19——Java 19的新特性

    ​ Java 开发工具包19(JDK 19)将于今年 9 月发布,现已功能完善,目前处于第二阶段.该版本的七项功能包括结构化并发.记录模式.外部函数和内存 API 的预览,以及对开源 Linux/RI ...

  2. Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结...

    Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 ...

  3. Java SE 6 新特性 Instrumentation 新功能

    系列内容: 此内容是该系列的一部分:Java SE 6 新特性 Instrumentation 简介 利用 Java 代码,即 java.lang.instrument 做动态 Instrumenta ...

  4. JDK 16 昨日正式发布,新特性实践尝鲜来啦!

    JDK 16在2021年2月18日已完成最终候选版本,并于2021年3月16日正式发布.和JDK 15一样,JDK 16也会是一个短期版本,仅支持六个月.而计划在2021年9月发布的JDK 17将会是 ...

  5. Java 8的新特性—终极版

    前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java ...

  6. Java 8的新特性

    Java 8的新特性 前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing ...

  7. 【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势

    [小家java]java5新特性(简述十大新特性) 重要一跃 [小家java]java6新特性(简述十大新特性) 鸡肋升级 [小家java]java7新特性(简述八大新特性) 不温不火 [小家java ...

  8. Java JDK1.8新特性之四大函数式接口

    JDK 1.8的一些新特性 四大核心函数式接口(Consumer.Predicate.Supplier.Function),结合lambda表达式 import java.util.ArrayList ...

  9. Java Web学习总结(41)——Java EE 8 新功能展望

    Java EE 7简介 Java EE 作为一个企业应用的部署平台,具有很好的健壮性.能够提供强大的 Web 服务且非常易于部署.这些年来,通过其不断发展,它已大大简化了以服务器为中心的应用程序的开发 ...

最新文章

  1. 区块链BaaS云服务(39)时戳信息Bystack“架构“
  2. python with语句与contextlib
  3. Struts 动态Form的验证框架步骤
  4. FMS3 服务器集群虚拟服务器配置入门
  5. SpringMVC的JSP页面中EL表达式不起作用${}
  6. mysql客户端备份数据库失败,mysqlhotcopy的使用和安装方法【快速备份mysql数据库】及错误解...
  7. (转)比特币算法——SHA256算法介绍
  8. 15分钟破解保险箱!美国小哥200美元自制开锁机器人
  9. tr069开源代码文档_tr069开源代码——cwmp移植
  10. 可视对讲行业洗牌进行时 企业应该何去何从?
  11. glsl 抗锯齿锯齿_什么是抗锯齿?
  12. 常见的股票量化交易软件主要有哪几种类型?
  13. 关于python画太阳花
  14. 为什么Y电容容量基本都不大于0.1uF?
  15. 数论作业 —— 同余理论
  16. 组学数据上传(五):代谢组学数据
  17. 运用计算机考试ppt,计算机一级考试的ppt word excel分别用的是哪个版本的??
  18. 基于Unity的软光栅实现(3):基于Job system的多核加速光栅化
  19. 苹果和虫子编程题python_2020智慧树《兽医寄生虫学》免费最全题库2020中国大学mooc《线性代数习题选讲》...
  20. 参与开源,从给RocketMQ提ISSUE开始

热门文章

  1. android 调用红外模块,Flutter调用Android模块的功能
  2. mysql续型_mysql续集1
  3. memmove和memcpy
  4. 趣谈设计模式 | 观察者模式(Observer) :消息的发布与订阅
  5. 字符串匹配算法(三):KMP(KnuthMorrisPratt)算法
  6. Python 的AES加密与解密
  7. MySQL数据库的内连接,左外连接和右外连接查询
  8. 使用mybatis-generator自动生成代码的方法介绍及踩坑
  9. 如何成为SSP offer收割机|独家经验分享!
  10. JDK 14 调试神器了解一下?