public class JavaElevenTest {
/**
* java 11 新特性一:String 中新增的方法
*/
@Test
public void test1(){
//1. isBlank():去除空格、\t、\n 后 判断字符串是否为空白
System.out.println(" \t \n".isBlank());//TRUE
//2. strip() :去除收尾空白
System.out.println("----"+" \t a bc \t \n ".strip()+"----");//----a bc----
System.out.println("----"+" \t a bc \t \n ".trim()+"----");//----a bc----
//3.stripTrailing(): 去除尾部空格
System.out.println("----"+" \t a bc \t \n ".stripTrailing()+"----");//---- a bc----
//4.stripLeading(): 去除首部空格
System.out.println("----"+" \t a bc \t \n ".stripLeading()+"----");
//----a bc
// ----
//5.repeat(int count) ://重复几次
String str1 = "abc";
String str2 = str1.repeat(5);
System.out.println(str2);//"abcabcabcabcabc"
//6.lines().count() :字符串有多少行
System.out.println("abc\ndef\ndej".lines().count());//3
}
/**
* java 11 新特性二:Optional 加强
* Optional 也增加了几个非常酷的方法,现在可以很方便的将一个Optional转换成一个Stream
* 或者当一个空的Optional时给它一个替代的。
* boolean isEmpty() 判断value是否为空 JDK 11
* ifPresentOrElse(Consumer<? super T> action,Runnable emptyAction)
* value非空,执行参数1功能,否则执行参数2功能 JDK 9
* Optional<T> or(Supplier<? extends Optional<? extends T>> supplier)
* value非空,返回对应的Optional,否则返回形参封装的Optional JDK 9
* Stream<T> stream() value非空,返回仅包含此value的stream,否则返回一个空的Stream JDK 9
*
* T orElseThrow() value非空,返回value,否则抛异常NoSuchElementException JDK 10
*/
@Test
public void test2(){
Optional<Object> op = Optional.empty();
//java 8 :判断内部的value是否存在
System.out.println(op.isPresent());//false
//java 11 :判断内部的value是否为空
System.out.println(op.isEmpty());//true
}
/**
* java 11 新特性三:全新的HTTP客户端API,HttpClient替换原有的HttpURLConnection
* 在java.net.http包中
*/
@Test
public void test3() throws IOException, InterruptedException {
HttpClient httpClient = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(URI.create("www.baidu.com")).build();
HttpResponse.BodyHandler<String> re = HttpResponse.BodyHandlers.ofString();
HttpResponse<String> response = httpClient.send(request,re);
String body = response.body();
}
}
Java 11 新特性
最新推荐文章于 2024-07-22 14:15:06 发布