引用参考文档链接
写在开头
- 本次版本没有对用户代码直接影响特性
- AppCDS的增强对于使用AppCDS的用户来说是降低了日常的使用成本
- 对于大多数开发人员来说,我想
文本块
的提出是非常令人舒畅的,日常的大文本的使用的确是一直为人诟病的,这个虽然只是小细节的优化调整,甚至都未开放使用,但是却令笔者对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 | String html = "<html>\n" + |
新的文本块特性将允许"""
标记文本区域,从而简化文本块的使用
1 | String html = """ |
JDK13未正式开放使用该特性。