还在用JDK8?我都开始上手JDK 13了!
作者:木九天
来源:https://my.oschina.net/mdxlcj/blog/3107021
# switch优化更新
switch (day) {
case MONDAY:
case FRIDAY:
case SUNDAY:
System.out.println(6);
break;
case TUESDAY:
System.out.println(7);
break; case THURSDAY:
case SATURDAY:
System.out.println(8);
break;
case WEDNESDAY:
System.out.println(9);
break;
}
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
case TUESDAY -> System.out.println(7);
case THURSDAY, SATURDAY -> System.out.println(8);
case WEDNESDAY -> System.out.println(9);
}
static void howMany(int k) {
System.out.println(
switch (k) {
case 1 -> "one"
case 2 -> "two"
default -> "many"
}
);
}
# 文本块升级
html例子
String html = "<html>" +
" <body>" +
" <p>Hello, world</p>" +
" </body>" +
"</html>";
JDK13优化的
String html = """
<html>
<body>
<p>Hello, world</p>
</body>
</html>
""";
SQL变化
String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`" +
"WHERE `CITY` = 'INDIANAPOLIS'" +
"ORDER BY `EMP_ID`, `LAST_NAME`;";
JDK13
String query = """
SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
WHERE `CITY` = 'INDIANAPOLIS'
ORDER BY `EMP_ID`, `LAST_NAME`;
""";
解释
"""
line 1
line 2
line 3
"""
"line 1line 2line 3"
# 动态CDS档案
# 取消使用未使用的内存
# 重新实现旧版套接字API
# FileSystems.newFileSystem新方法
1、newFileSystem(Path)
2、newFileSystem(Path, Map)
3、newFileSystem(Path, Map, ClassLoader)
FileSystem fs = FileSystems.newFileSystem(path, null);
# nio新方法
# 核心库/ java.time
# 核心库/ java.util中:I18N
# 热点/ GC
-
JEP 351 ZGC取消提交未使用的存储器 -
添加了-XXSoftMaxHeapSize标志 -
ZGC支持的最大堆大小从4TB增加到16TB
# 安全库/ java.security
# 删除功能
-
核心库/java.net中,不再支持Pre-JDK 1.4 SocketImpl实现java.net.SocketImpl此版本已删除对为JavaSE1.3及更早版本编译的自定义实现的支持。 此更改对SocketImpl为Java SE 1.4(2002年发布)或更新版本编译的实现没有影响。 -
核心库/java.lang中,删除运行时跟踪方法,过时的方法traceInstructions(boolean),并traceMethodCalls(boolean)已经从删除java.lang.Runtime类。 这些方法对许多版本都不起作用,它们的预期功能由Java虚拟机工具接口(JVMTI)提供。