1. String API
字符串绝对是 Java 中最常用的一个类了,String 类的方法使用率也都非常的高,在 Java 11 中又为 String 类带来了一系列的好用操作。
-
isBlank () 判空。
// 判空,blank里我放入了全角空格,半角空格,TAB String blank = " "; System.out.println(blank.isBlank()); // 输出 // true -
lines () 分割获取字符串流。
// lines 返回一个 Stream String line = "a\nb\nc"; Stream<String> lines = line.lines(); // 使用 lambda 遍历 lines.forEach(System.out::println); // 输出 // a // b // c -
repeat () 复制字符串
// 复制字符串 String repeat = "我的微信:wn8398,"; String repeat3 = repeat.repeat(3); System.out.println(repeat3); // 输出 // 我的微信:wn8398,我的微信:wn8398,我的微信:wn8398, -
strip () 去除前后空白字符。
// 去除前后空白 String strip = " https://www.wdbyte.com "; System.out.println("==" + strip.trim() + "=="); // 去除前后空白字符,如全角空格,TAB System.out.println("==" + strip.strip() + "=="); // 去前面空白字符,如全角空格,TAB System.out.println("==" + strip.stripLeading() + "=="); // 去后面空白字符,如全角空格,TAB System.out.println("==" + strip.stripTrailing() + "=="); // 输出 // == https://www.wdbyte.com == // ==https://www.wdbyte.com== // ==https://www.wdbyte.com == // == https://www.wdbyte.com==这里注意,
trim只能去除半角空格,而strip是去除各种空白符2. File API
读写文件变得更加方便。
// 创建临时文件
Path path = Files.writeString(Files.createTempFile("test", ".txt"), "https://www.wdbyte.com");
System.out.println(path);
// 读取文件
// String ss = Files.readString(Path.of("file.json"));
String s = Files.readString(path);
System.out.println(s);
// 结果
// https://www.wdbyte.com
## 4. JEP 323 - Lambda 局部变量推断
在 Java 10 中引入了 var 语法,可以自动推断变量类型。在 Java 11 中这个语法糖可以在 Lambda 表达式中使用了。
var hashMap = new HashMap<String, Object>();
hashMap.put("wechat", "wn8398");
hashMap.put("website", "https://www.wdbyte.com");
hashMap.forEach((var k, var v) -> {
System.out.println(k + ": " + v);
});
这里需要注意的是,
(var k,var v) 中,k 和 v 的类型要么都用 var ,要么都不写,要么都写正确的变量类型。而不能 var 和其他变量类型混用。
自从学习 Java 的第一天,我们就知道运行一个 Java 文件,要先用 javac 命令编译,再用 java 命令运行,而现在只要一个 java 命令就可以运行了。
$ cat Main.java
public class Main {
public static void main(String[] args) {
System.out.println("wechat:wn8398");
}
}
$ java Main.java
wechat:wn8398
其他更新
- JEP 309 - 添加动态文件常量。
- JEP 318 - 添加 Epsilon 垃圾收集器。
- JEP 320 - 删除 Java EE 和 corba 模块(java.xml.ws, java.xml.bind, java.activation, java.xml.ws.annotation, java.corba, java.transaction, java.se.ee, jdk.xml.ws, jdk.xml.bind)。
- JEP 329 - 增加加密算法 chacha20,poly1305 的实现。
- JEP 333 - 引入实验性的 ZGC 垃圾收集器,保证停摆时间不会超过 10ms。
- JEP 335 - 废弃 Nashorn JavaScript 引擎