51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Java13新特性

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的性能:

  1. 吞吐量:程序运行时间(程序运行时间+内存回收时间)

  2. 垃圾收集开销:(垃圾回收所占时间占总时间比例)

  3. 暂停时间:程序工作线程暂停时间

  4. 收集时间:收集操作发生的频率

  5. 堆空间:Java堆所占内存大小

  6. 快速:一个对象诞生到被回收所经历的时间

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);

新版本注意事项

  1. 被新版本绑定,如果使用13,那么13,14,15,16,17也会采用,因为官方稳定版本是8和11,每4个月不再维护

  2. 升级的绊脚石,考虑2年后的开发工具、项目的开发维护成本

  3. 云、部署是否支持

  4. 第三方厂商,目前Spring是支持的

赞(5)
未经允许不得转载:工具盒子 » Java13新特性