0
点赞
收藏
分享

微信扫一扫

java11新特性


java11新特性

  • ​​正文​​
  • ​​介绍​​
  • ​​新特性一:String中新增的方法​​
  • ​​新特性二:Optional中新增的方法​​
  • ​​新特性三:局部变量类型推断的升级​​
  • ​​新特性四:全新的Http客户端API​​
  • ​​新特性五:更简化的编译运行程序​​
  • ​​新特性六:废弃Nashorn引擎​​
  • ​​新特性七:ZGC​​
  • ​​新特性八:其他新特性​​
  • ​​展望​​
  • ​​代码​​

总结于​​尚硅谷​​学习视频

正文

介绍

​​视频链接​​​​ https://www.bilibili.com/video/BV1Kb411W75N?p=710​​java11新特性_ide
java11新特性_java_02
java11新特性_java_03

新特性一:String中新增的方法

​​视频链接​​​​ https://www.bilibili.com/video/BV1Kb411W75N?p=711​​java11新特性_新特性_04

新特性二:Optional中新增的方法

​​视频链接​​​​ https://www.bilibili.com/video/BV1Kb411W75N?p=712​​java11新特性_ide_05

新特性三:局部变量类型推断的升级

​​视频链接​​​​ https://www.bilibili.com/video/BV1Kb411W75N?p=713​​java11新特性_新特性_06

新特性四:全新的Http客户端API

​​视频链接​​​​ https://www.bilibili.com/video/BV1Kb411W75N?p=714​​java11新特性_java11新特性_07
java11新特性_java11新特性_08

新特性五:更简化的编译运行程序

​​视频链接​​​​ https://www.bilibili.com/video/BV1Kb411W75N?p=715​​java11新特性_java11新特性_09
java11新特性_ide_10
java11新特性_java11新特性_11

新特性六:废弃Nashorn引擎

​​视频链接​​​​ https://www.bilibili.com/video/BV1Kb411W75N?p=716​​

java11新特性_新特性_12

新特性七:ZGC

​​视频链接​​​​ https://www.bilibili.com/video/BV1Kb411W75N?p=716​​java11新特性_ide_13
java11新特性_java_14

新特性八:其他新特性

​​视频链接​​​​ https://www.bilibili.com/video/BV1Kb411W75N?p=716​​java11新特性_java11新特性_15

展望

​​视频链接​​​​ https://www.bilibili.com/video/BV1Kb411W75N?p=717​​

java11新特性_java_16


java11新特性_新特性_17


java11新特性_java11新特性_18

代码

package com.day0403_2;

import org.junit.jupiter.api.Test;

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;


public class java11Test {

//java11新特性一:String中新增的方法
@Test
public void test1(){
// isBlank():判断字符串是否为空白
System.out.println(" \t \t \n ".isBlank());//true
// strip():去除首尾空格
System.out.println("-----"+" \t abc \t \n ".strip()+"-------");
System.out.println("-----"+" \t abc \t \n ".trim()+"-------");
// stripTrailing():去除尾空格
System.out.println("-----"+" \t abc \t \n ".stripTrailing()+"-------");
// stripLeading():去除首空格
System.out.println("-----"+" \t abc \t \n ".stripLeading()+"-------");
// repeat(int count):复制字符串
String str1="abc";
String str2 = str1.repeat(5);
System.out.println(str2);

// lines().count():行数统计
String str3="abc\ndef\ng";
System.out.println(str3.lines().count());

}


//java11新特性二:Optional中新增的方法
@Test
public void test2(){
Optional<Object> op = Optional.empty();
System.out.println(op.isPresent());//判断内部的Value是否存在
System.out.println(op.isEmpty());//判断内部的Value是否为空

op=Optional.of("abc");
//orElseThrow():Value非空,返回Value,否则抛异常NoSuchElementException
var obj = op.orElseThrow();
System.out.println(obj);


//or:Value非空,返回对应的Optional;Value为空,返回形参封装的Optional
// op=Optional.empty();
Optional<String> op1 = Optional.of("hello");
Optional<Object> op2 = op.or(() -> op1);
System.out.println(op2);


}

//java11新特性三:局部变量类型推断的升级
@Test
public void test3(){
//错误的形式:必须要有类型,可以加上var
//Consumer<String> con1 = (@Deprecated t) ->System.out.println(t.toUpperCase());
// 正确的形式:
//使用var的好处是在使用Lambda表达式时给参数加上注解。
Consumer<String> con2= (@Deprecated var t) ->System.out.println(t.toUpperCase());

}

//java11新特性四:HttpClient替换原有的HttpURLConnection。
@Test
public void test4(){
try {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(URI.create("http://127.0.0.1:8080/test/")).build();
HttpResponse.BodyHandler<String> responseBodyHandler = HttpResponse.BodyHandlers.ofString();
HttpResponse<String> response = null;
response = client.send(request, responseBodyHandler);
String body = response.body();
System.out.println(body);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}

}

@Test
public void test5(){
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(URI.create("http://127.0.0.1:8080/test/")).build();
HttpResponse.BodyHandler<String> responseBodyHandler = HttpResponse.BodyHandlers.ofString();
CompletableFuture<HttpResponse<String>> sendAsync = client.sendAsync(request, responseBodyHandler);
sendAsync.thenApply(t -> t.body()).thenAccept(System.out::println);
//HttpResponse<String> response = sendAsync.get();
//String body = response.body();
//System.out.println(body);

}



}


举报

相关推荐

0 条评论