[java] JDK11常用特性

1、字符串加强

1. isBlank()

判断字符串中的字符是否都为空白

2. strip()

去除字符串首尾的空白

3. stripTrailing()

去除字符串尾部的空白

4. stripLeading()

去除字符串首部的空白

5. repeat()

复制字符串,可以传入一个int类型值来控制复制次数

 

2、集合加强

1. takeWhile()

该方法会从流中一直获取判定器为真的元素,一旦遇到元素为假,就终止处理

Stream<Integer> stream = Stream.of(1, 3, 2, 5, 6, 7); Stream stream2 = stream.takeWhile(t -> t % 2 != 0); stream2.forEach(System.out::println);

这段程序的运行结果:

1 3

当获取到元素2时,判定器为假,此时会终止处理,所以后面的元素就不会再去处理。

2. dropWhile()

那么这方法和takeWhile()方法相反,它会从流中一直丢弃判定器为真的元素,一旦遇到元素为假,就终止处理

Stream<Integer> stream = Stream.of(1, 3, 2, 5, 6, 7); Stream stream2 = stream.dropWhile(t -> t % 2 != 0); stream2.forEach(System.out::println);

所以上面程序段的执行结果为:

2 5 6 7

3. copyOf()

var list = List.of("Java", "Python", "C"); var copy = List.copyOf(list); System.out.println(list == copy); // true

 

3、Optional 加强

Optional.of("javastack").orElseThrow(); // javastack Optional.of("javastack").stream().count(); // 1 Optional.ofNullable(null) .or(() -> Optional.of("javastack")) .get(); // javastack

 

4、InputStream 加强

var classLoader = ClassLoader.getSystemClassLoader(); var inputStream = classLoader.getResourceAsStream("javastack.txt"); var javastack = File.createTempFile("javastack2", "txt"); try (var outputStream = new FileOutputStream(javastack)) { inputStream.transferTo(outputStream); }

 

5、HTTP Client API

var request = HttpRequest.newBuilder() .uri(URI.create("https://javastack.cn")) .GET() .build(); var client = HttpClient.newHttpClient(); // 同步 HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); // 异步 client.sendAsync(request, HttpResponse.BodyHandlers.ofString()) .thenApply(HttpResponse::body) .thenAccept(System.out::println);

 

6、化繁为简,一个命令编译运行源代码

  1. // 编译

javac Javastack.java

  1. // 运行

java Javastack

在 Java 11 版本中,通过一个 java 命令就直接搞定了,如以下所示。

java Javastack.java

 

 

 

 

 

 


版权声明:本文为u012433915原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。