你还在使用 JDK 7?JDK 13 都已经来了!五大新特性你最喜欢哪个 ?
就在昨天(2019年09月17日),JDK 13 已经处于 General Availability 状态,已经正式可用了。General Availability(简称 GA)是一种正式版本的命名,也就是官方开始推荐广泛使用了,我们熟悉的 MySQL 就用 GA 来命令其正式版本。
从上图我们可以看到 JDK 13 带来了五个大的 Features:
350: Dynamic CDS Archives
351: ZGC: Uncommit Unused Memory
353: Reimplement the Legacy Socket API
354: Switch Expressions (Preview)
-
355: Text Blocks (Preview)
这个特性是扩展 JEP310:Application Class-Data Sharing(简称AppCDS,参见 http://openjdk.java.net/jeps/310)的,以允许在 Java 应用程序执行结束时动态归档类,归档类扩展了默认的基础层 CDS (Class-Data Sharing)存档,此特性允许应用的类也可以被放置在共享的归档类(archived classes)文件中。
提高 AppCDS 的可用性,不需要用户进行试运行来为每个应用程序创建类列表。
由 -Xshare:dump 选项启用的静态归档(Static archiving)应该继续工作,这包括用于内置类加载器和用户定义类加载器的类。
353: Reimplement the Legacy Socket API
354: Switch Expressions (Preview)
JDK 12 中引入了 Switch 表达式,此时还属于预览特性。JEP 354 修改了这个特性,它引入了 yield 语句,用于从块返回值,而不是使用 break。这意味着,switch表达式需要返回值的时候应该使用 yield, 而需要不返回值应该使用break。
注意,这个特性在早期版本是不能使用的。
355: Text Blocks (Preview)
JDK 12 中引入了原始字符串文字特性(http://openjdk.java.net/jeps/326),但在发布之前却被放弃了。JEP 355 在引入多行字符串文字(一个文本块)的意义上是类似的。
这时候上面的定义就相当于 String lines="hello iteblog\nhello word",大家也可以看出,hello iteblog 和 hello word 字符串前后的空格全部被删除了。
最后,附上 Oracle Java SE Support Roadmap(https://www.oracle.com/technetwork/java/java-se-support-roadmap.html)可以看出 JDK 13 已经从 2019年09月开始可用了。
另外,是不是还有很多小伙伴和我一样还在使用 JDK 1.7\1.8 啊?真是坐飞机都赶不上这个社区的节奏。评论区谈谈你在使用的 JDK 版本。
本文主要参考 https://metebalci.com/blog/what-is-new-in-java-13/。
新福利:
上周获奖名单:AF
1、
2、
3、
4、
过往记忆大数据
拉你进技术交流群