专栏名称: SegmentFault思否
SegmentFault (www.sf.gg)开发者社区,是中国年轻开发者喜爱的极客社区,我们为开发者提供最纯粹的技术交流和分享平台。
目录
相关文章推荐
OSC开源社区  ·  Bun ... ·  16 小时前  
OSC开源社区  ·  宇树王兴兴早年创业分享引围观 ·  3 天前  
程序猿  ·  “未来 3 年内,Python 在 AI ... ·  4 天前  
程序员的那些事  ·  惊!小偷“零元购”后竟向 DeepSeek ... ·  3 天前  
51好读  ›  专栏  ›  SegmentFault思否

JDK 12 又来了,我学不动了...

SegmentFault思否  · 公众号  · 程序员  · 2019-03-22 08:00

正文

写在前面

看到 JDK 12 又发布了,萌新不知不觉感觉瑟瑟发抖,从 Java 1.8 的函数式编程思维和范式到 Java 1.9 的模块化特性的加持,以及还没来得及深切感受一下 Java 1.11 的 ZGC 强大之后,这次 JDK 12 到底有搞了些啥事情呢?我真的学不动了,我该怎么办呢?

不管怎样,下面还是来看一下 JDK 12 的新特性解(fan)读(yi)吧!

低暂停延时的垃圾收集器 (实验版)

A Low-Pause-Time Garbage Collector (Experimental)

添加一个名为 Shenandoah 的新垃圾收集 (GC)算法,该算法通过与正在运行的 Java 线程并发执行回收工作来减少 GC 暂停时间。Shenandoah 的暂停时间与堆大小无关,这意味着无论堆大小是 200 MB 还是 200 GB,都将拥有相同的暂停时间。

微基准测试套件

Microbenchmark Suite

在 JDK源代码中添加了一组基本的微基准测试套件,使得开发人员无论运行现有的微基准测试或者创建新的微基准测试都变得十分便利。

Switch 表达式 (预览版)

Switch Expressions (Preview)

这是一个预览版语言特性。通过对 switch 语法进行了扩展,使其不仅可以作为语句(statement),还可以作为表达式(expression),并且两种形式都可以使用“传统的”或“简化的”语法用于作用于不同的范围或者控制执行流。这些更改将会简化日常编码,并且为在 switch 中使用模式匹配 (JEP 305) 做好了准备。

JVM 常量 API

JVM Constants API

引入一个 API 来建模关键类文件(key class-file)和运行时构件(run-time artifacts)的标称描述,特别是对那些可从常量池加载的常量。

仅保留 AArch64 实现

One AArch64 Port, Not Two

删除与 arm64 实现相关的所有源代码,同时保留 32-bit ARM 和 64-bit aarch64 实现。删除这些实现是为了让所有代码贡献者集中精力于一个实现上,从而消除维护两个实现所需付出的重复工作。

默认类数据共享归档文件

Default CDS Archives

增强 JDK 构建过程,在 64 位平台上使用默认的类列表生成类数据共享(class data-sharing,CDS)存档。

可中断的 G1 Mixed GC

Abortable Mixed Collections for G1

如果 Mixed GC 的 G1 存在超出暂停目标的可能性,则使其可被中止。

G1 未使用分配内存即时返回

Promptly Return Unused Committed Memory from G1

增强 G1 垃圾收集器,以便在空闲时自动将 Java 堆内存返回给操作系统。

参考文献

  • http://openjdk.java.net/jeps/189







请到「今天看啥」查看全文