一帆磨砺

生活所迫,一叶孤舟

0%

Java版本特性-JDK13

引用参考文档链接

  1. jdk13特性列表

写在开头

  1. 本次版本没有对用户代码直接影响特性
  2. AppCDS的增强对于使用AppCDS的用户来说是降低了日常的使用成本
  3. 对于大多数开发人员来说,我想文本块的提出是非常令人舒畅的,日常的大文本的使用的确是一直为人诟病的,这个虽然只是小细节的优化调整,甚至都未开放使用,但是却令笔者对Java的后续更新迭代增加了很多期望

AppCDS增强

应用程序退出时将动态创建共享的归档,该归档是在JDK12中新增的默认归档基础上创建,因此启动参数不可指定-Xshare:off(默认为on),该特性提高了AppCDS的可用性,JDK10 中需要先运行几次应用来创建类列表,再转储为归档文件,再使用归档文件启动。
应用程序退出时动态创建归档需要使用启动参数-XX:ArchiveClassesAtExit开启。

ZGC增强:允许释放未使用堆内存回操作系统

该功能与JDK10 的G1增强一致,都是为了尽可能减少应用程序的资源消耗。
不会将内存减少到低于-Xms

替换 Socket API 底层实现

将 java.net.Socket 和 java.net.ServerSocket API 使用的底层实现替换为更简单、更现代且易于维护和调试的实现。

switch表达式第二次预调整

对比于JDK12的调整,本次是取消了break 返回值,使用yield返回值进行替换。
JDK13未正式开放使用该特性。

文本块(预调整)

目前对于大量文本大多用+和换行进行拼接

1
2
3
4
5
String html = "<html>\n" +
" <body>\n" +
" <p>Hello, world</p>\n" +
" </body>\n" +
"</html>\n";

新的文本块特性将允许"""标记文本区域,从而简化文本块的使用

1
2
3
4
5
6
7
String html = """
<html>
<body>
<p>Hello, world</p>
</body>
</html>
""";

JDK13未正式开放使用该特性。

欢迎关注我的其它发布渠道