局部变量类型推断是java10开始新增的新特性,java11中对局部变量推断进行了升级,在var支持添加注解的语法格式,JAVA10中是无法实现的,在JAVA11中加入了这样的语
Consumer<String> con =(@Deprecated t) -> System.out.println(t.toLowerCase());
Consumer<String> con =(@Deprecated String t) -> System.out.println(t.toLowerCase());
Consumer<String> con =(@Deprecated var t) -> System.out.println(t.toLowerCase());
Optional<String> optional =Optional.empty();
//JDK8 判断value是否存在
System.out.println(optional.isPresent()); // false
//JDK11 判断value是否为空
System.out.println(optional.isEmpty()); // true
//JDK10 返回value,如果为null则直接抛出 NoSuchElementExpception
Optional<String> optional2 = Optional.of("element1");
String value = optional2.orElseThrow();
System.out.println(value);
//JDK9 value非空,执行参数1功能,如果value为空,执行参数2功能
Optional<String> optional3 =Optional.empty();// Optional.of("element1");
optional.ifPresentOrElse((v)-> System.out.println("value为"+v),()-> System.out.println("value为null"));
// JDK9 value非空,返回对应的Optional,value为空,返回形参封装的Optional
Optional<String> optional4 =Optional.empty();// Optional.of("element1");
Optional<String> optional5 = optional4.or(() -> Optional.of("element2"));
System.out.println(optional5);
// JDK9 value非空,返回一个仅包含此value的Steam,否则,返回一个空的Stream
Optional<String> optional6 =Optional.of("element3");//Optional.empty();
Stream<String> stream = optional6.stream();
stream.forEach(System.out::println);
//HttpClient 替换原有的HttpUrlConnection 同步方式
HttpClient client =HttpClient.newHttpClient();
HttpRequest request =HttpRequest.newBuilder(URI.create("http://127.0.0.1:8080/demo")).build();
HttpResponse.BodyHandler<String> respnoseBodyHandler= HttpResponse.BodyHandlers.ofString();
HttpResponse<String> response =client.send(request,respnoseBodyHandler);
String body = response.body();
System.out.println(body);
# 编译运行
javac Test.java
java Test
# Java11支持直接使用java命令直接编译运行
java Test.java