具有差异的 JVM 10 规范?

JVM 10 specification with diffs?

有谁知道 Java 10 和 JVM 10 规范的版本是否与以前的版本不同?对于 Java 8 和 Java 9,有不同的规范,很难看出其他方面到底发生了什么变化。

Java9和Java10(18.3)的区别,可以下载“JSR-000383JavaSE 10(18.3)Final Release Annex 3 用于评估”,具有以下 link:

请记住,您必须接受软件许可协议才能下载它。

此存档包含 JLS 和 JVMS 的差异。

我知道Java10有什么新东西了,快来看看吧

1.局部变量类型推断 (JEP 286) 类似于 JavaScript、Kotlin 和 Scala,现在 Java 也将有一个 var 关键字,允许您在不指定其类型的情况下声明局部变量 例子 : 变量名 = "Java"

2。 Garbage-Collector 界面 (JEP 304) 它增加了不同垃圾收集器的代码隔离,并为 them.This 引入了一个干净的接口,这意味着更容易从 JDK 构建中排除 GC,同时也更容易添加新的 GC 而不会影响代码根据。

3。 G1 的并行完整 GC (JEP 307) 它通过使完整 GC 并行来改善 G1 worst-case 延迟,如果您还记得 Java 9 的发布,G1 被设为 JVM 的默认 GC,旨在避免完整 GC。但是当并发 collections 无法足够快地回收内存时,它最终会退回到完整的 GC,并且创建 problem.This 更改将使完整的 GC 算法并行化,以便在不太可能发生的情况下在 G1 Full GC 中,可以使用与并发中相同数量的线程 collections 来提高整体性能。

4.替代内存设备上的堆分配 (JEP 316) 它使 HotSpot VM 能够在 user.For 示例指定的备用内存设备上分配 Java object 堆,此功能可以分配较低优先级的进程使用 NV-DIMM 内存,而只在 multi-JVM 环境中将优先级较高的进程分配给 DRAM。

5.将 JDK 森林合并为一个存储库 (JEP 296) 它将 JDK 林的众多存储库合并到一个存储库中。

6.实验性 Java-Based JIT 编译器 (JEP 317) 使 Java-based JIT 编译器 Graal 可以用作 Linux/x64 platform.If 上的实验性 JIT 编译器 你记得,Graal 已经在 Java 9 中添加回来了,但是现在您可以使用以下 JVM 参数启用它:

-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler

7. Thread-Local 握手 (JEP 312) 通过在不执行全局 VM 保存点的情况下在应用程序线程上执行回调成为可能,从而提高了 VM 性能。这意味着 JVM 可以停止单个线程,而不仅仅是所有线程。

8.删除 Native-Header 生成工具 (JEP 313) 它将从 JDK 中删除 javah 工具,这是一个单独的工具,用于在编译 JNI 代码时生成 header 文件,因为这可以通过 javac 完成。

Source/Credit : Java 10 Features