Java12下载 JDK12(Java SE Development Kit 12) for Mac x64 苹果电脑正式版
Oracle宣布推出JDK 12(Java SE Development Kit 12),这是Java SE平台参考实现的最新更新。在Oracle相对较新的六个月发布计划下的第三个版本,JDK 12带来了许多新功能,知识兔包括Switch Expressions的预览和Garbage-First(G1)收集器的可丢弃混合集合。需要的朋友可下载试试!
更新介绍
Java 12不是一个小版本,它带来了以下八个重大新功能:
189 Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) 低暂停时间的GC
230 Microbenchmark Suite 微基准测试套件
325 Switch Expressions (Preview) Switch表达式
334 JVM Constants API JVM常量API
340 One AArch64 Port, Not Two 只保留一个AArch64实现
341 Default CDS Archives 默认类数据共享归档文件
344 Abortable Mixed Collections for G1 可中止的G1 Mixed GC
346 Promptly Return Unused Committed Memory from G1 G1及时返回未使用的已分配内存
下边分别来看看:
Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
Shenandoah:低暂停时间的 GC(实验性功能)
新增了一个名为 Shenandoah 的 GC 算法,通过与正在运行的 Java 线程同时进行 evacuation 工作来减少 GC 暂停时间。使用 Shenandoah 的暂停时间与堆大小无关,这意味着无论堆是 200 MB 还是 200 GB,都将具有相同的暂停时间。
Microbenchmark Suite
微基准测试套件
JDK 源码中新增了一套微基准测试套件,使开发人员可以轻松运行现有的微基准测试并创建新的基准测试。
Switch Expressions (Preview)
Switch 表达式(预览功能)
扩展了 switch 语句,使其不仅可以作为语句(statement),还可以作为表达式(expression),并且知识兔两种写法都可以使用传统的 switch 语法,或者使用简化的“case L ->”模式匹配语法作用于不同范围并控制执行流。这些更改将简化日常编码工作,并为 switch 中的模式匹配(JEP 305)做好准备。
JVM Constants API
JVM 常量 API
引入 API 对关键类文件和运行时工件建模,特别是可从常量池加载的常量。在新的 java.lang.invoke.constant 包中定义了一系列基于值的符号引用(JVMS 5.1)类型,它们能够描述每种可加载常量。符号引用以纯 nominal 形式描述可加载常量,与类加载或可访问性上下文区分开。有些类可以作为自己的符号引用(例如 String),而对于可链接常量,定义了一系列符号引用类型(ClassDesc、MethodTypeDesc、MethodHandleDesc 和 DynamicConstantDesc),它们包含描述这些常量的 nominal 信息。
One AArch64 Port, Not Two
只保留一个 AArch64 实现
删除了与 arm64 相关的所有源,同时保留 32 位 ARM 实现和 64 位 aarch64。
JDK 中存在两套 64 位 ARM 实现,主要存在于 src/hotspot/cpu/arm 和 open/src/hotspot/cpu/aarch64 目录。两者都实现了 aarch64,现在将只保留后者,删除由 Oracle 分享的 arm64。这将使贡献者将他们的精力集中在单个 64 位 ARM 实现上,并消除维护两套实现所需的重复工作。
Default CDS Archives
默认类数据共享归档文件
针对 64 位平台,知识兔使用默认类列表增强 JDK 构建过程以生成类数据共享(class data-sharing,CDS)档。
Abortable Mixed Collections for G1
可中止的 G1 Mixed GC
如果知识兔 G1 Mixed GC 存在超出暂停目标的可能性,则使其可中止。
Promptly Return Unused Committed Memory from G1
G1 及时返回未使用的已分配内存
增强 G1 GC,在空闲时自动将 Java 堆内存返回给操作系统。为了实现向操作系统返回最大内存量的目标,G1 将在应用程序不活动期间定期执行或触发并发周期以确定整体 Java 堆使用情况。这将导致它自动将 Java 堆的未使用部分返回给操作系统。而在用户控制下,知识兔可以可选地执行完整的 GC,知识兔以使返回的内存量最大化。
下载仅供下载体验和测试学习,不得商用和正当使用。