JAVA13
概述:JAVA是目前应用最为广泛的软件开发平台之一; jdk13是在2018年9月26日发布,
安装:
下载地址:https://www.oracle.com/java/technologies/downloads/archive
同JDK8、9安装步骤一样,安装好之后,记得配置环境变量就可以;
查看java版本
java -version
新特性
switch语法
Type type = Type.AQ;
String abc = switch (type) {
case AQ -> "a";
case BQ, CQ -> "b";
default -> throw new Exception("异常");
};
// 结果是 a
enum Type{
AQ,BQ,CQ
}
垃圾回收
按线程数分,分为串行垃圾回收器、并行垃圾垃圾回收器;
Serial回收器、ParNew回收器、CMS回收器、G1回收器。
评估一款GC的性能:
-
吞吐量:程序运行时间(程序运行时间+内存回收时间)
-
垃圾收集开销:(垃圾回收所占时间占总时间比例)
-
暂停时间:程序工作线程暂停时间
-
收集时间:收集操作发生的频率
-
堆空间:Java堆所占内存大小
-
快速:一个对象诞生到被回收所经历的时间
ZGC:在GC释放的内存会归还给操作系统
String
// 增加项 (transform)
String str1 = "ttt".transform(x -> x + "name");
System.out.println(str1); // tttname
// 缩进 (indent)
String str2 = "ttt".indent(3);
System.out.println(str2); // ttt 缩进3格
Files
// 看2个文件是否匹配,文件1 与文件2 是否有匹配 ,如果没有差异返回-1 ,如果有返回该行的下标
long mismatch = Files.mismatch(Path.of("tmp/a.txt"), Path.of("tmp/b.txt"));
System.out.println(mismatch);
TextBlock文本块
String str3 = "<div>123" + "</div>"; // 旧写法
String str4 = """
<div>123</div>
""";
System.out.println(str3);
System.out.println(str4);
System.out.println(str3.equals(str4)); // false
// %s 可以动态传入参数
String name = "名字";
String str5 = """
<div>%s</div>
""".formatted(name);
System.out.println(str5);
新版本注意事项
-
被新版本绑定,如果使用13,那么13,14,15,16,17也会采用,因为官方稳定版本是8和11,每4个月不再维护
-
升级的绊脚石,考虑2年后的开发工具、项目的开发维护成本
-
云、部署是否支持
-
第三方厂商,目前Spring是支持的