355: Text Blocks (Preview)

  JDK 13的特性。简化了大段文本的换行,例如sql或xml段。

Shenandoah GC。

  jdk 12作为实验特性引入。

JEP330-启动单文件代码程序

  JEP330-启动单文件代码程序(Launch Single-File Source-Code Programs)是即将更新的JDK11(18.9)版本中一个很不错的功能。这个功能允许你直接使用java解析器运行java代码。java文件会在内存中执行编译并且直接执行。唯一的约束在于所有相关的类必须定义在东一个java文件中。

  这个特征非常适合刚刚准备学习java的童鞋,或者想快速尝试一些简单代码。这个功能和jshell会成为所有java初学者的最强大的工具。不仅仅如此,所有的成熟的开发,可以使用这个工具来快速验证和学习新的API。

JEP 351,ZGC。

  ZGC是JDK 11新引入的实验性gc,返回没有使用到的JVM堆内存给操作系统,在负载不均系统中,相当的有价值。 详见java垃圾回收及gc全面解析(全面覆盖jdk 13、zgc、openj9)。http://openjdk.java.net/jeps/333

JEP 321: HTTP Client (Standard)

   标准化的Http客户端接口。主要包括下列接口:

  • HttpClient
  • HttpRequest
  • HttpResponse
  • WebSocket

  支持同步和异步请求。这样就得考虑apache httpclient还是jdk类库自带的更合适。

JShell

  JShell是java9中直观的新特性,它提供了一个控制台交互界面,通过这个交互界面,开发者可以快速编写代码片段并运行,可以查看类库的文档,可以编写简单的程序。在需要快速验证的场景,我们不再需要先定义类、再定义方法、再定义main()方法或单元测试来验证我们的想法;对于java初学者来说,这也提供了一个简便的方法来学习java,是一个简单而又实用的特性。

AOT(JEP 295: Ahead-of-Time Compilation)

  在JDK9中被作为实验特性加入,用于提高启动大型应用的启动速度,避免JIT的过程。 在ibm openj9中,这是一个标配的GA特性,可参见openj9-docs-0.17.0/aot.html。其使用参见http://openjdk.java.net/jeps/295。

JEP 193: Variable Handles

  变量句柄是JDK 9的新特性。

JEP 274: Enhanced Method Handles

  该技术能够字节码层面的函数指针特性,相比反射能够极大的提升性能。增强方法句柄是JDK9在JDK7及JDK8基础上的增强。关于变量和方法句柄的介绍参见jdk 8反射性能优化之MethodHandle和VarHandle深入解析

JSR 269 插件化注解处理(Pluggable Annotation Processing)API

  lombok就是使用该技术实现。准确的说,该技术能够通过在编译期间修改代码实现c/c++中宏的功能,完全避免运行时负载。

JDK9新特性:https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-C23AFD78-C777-460B-8ACE-58BE5EA681F6

jshell命令行参考:https://docs.oracle.com/javase/9/tools/jshell.htm

花若盛开,蝶自飞来,你若精彩,幸福开怀!2020年12月11日-18日