溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java11的新特性是什么

發(fā)布時(shí)間:2021-08-25 06:58:33 來(lái)源:億速云 閱讀:168 作者:chen 欄目:編程語(yǔ)言

這篇文章主要講解了“Java11的新特性是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Java11的新特性是什么”吧!

1. String API

字符串絕對(duì)是 Java 中最常用的一個(gè)類了,String 類的方法使用率也都非常的高,在 Java 11中又為 String 類帶來(lái)了一系列的好用操作。

  1. isBlank() 判空。

    // 判空,blank里我放入了全角空格,半角空格,TABString blank = "    ";System.out.println(blank.isBlank());// 輸出// true
  2. lines() 分割獲取字符串流。

    // lines 返回一個(gè) StreamString line = "a\nb\nc";Stream<String> lines = line.lines();// 使用 lambda 遍歷lines.forEach(System.out::println);// 輸出// a// b// c
  3. repeat() 復(fù)制字符串

    // 復(fù)制字符串String repeat = "我的微信:wn8398,";String repeat3 = repeat.repeat(3);System.out.println(repeat3);// 輸出// 我的微信:wn8398,我的微信:wn8398,我的微信:wn8398,
  4. strip() 去除前后空白字符。

    // 去除前后空白String strip = "     https://www.wdbyte.com  ";System.out.println("==" + strip.trim() + "==");// 去除前后空白字符,如全角空格,TABSystem.out.println("==" + strip.strip() + "==");// 去前面空白字符,如全角空格,TABSystem.out.println("==" + strip.stripLeading() + "==");// 去后面空白字符,如全角空格,TABSystem.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

讀寫文件變得更加方便。

// 創(chuàng)建臨時(shí)文件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);// 結(jié)果// https://www.wdbyte.com

3. JEP 321 - HTTP Client

在 Java 11 中 Http Client API 得到了標(biāo)準(zhǔn)化的支持。且支持 HTTP/1.1 和 HTTP/2 ,也支持 websockets。

你可以像這樣發(fā)起一個(gè)請(qǐng)求。

HttpClient client = HttpClient.newHttpClient();HttpRequest request = HttpRequest.newBuilder()        .uri(URI.create("https://www.hao123.com"))        .build();// 異步client.sendAsync(request, HttpResponse.BodyHandlers.ofString())        .thenApply(HttpResponse::body)        .thenAccept(System.out::println)        .join();// 同步HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());

更多的如同步異步請(qǐng)求,并發(fā)訪問(wèn),設(shè)置代理等方式,可以參考 OpenJDK 官方文檔。

Java11的新特性是什么

你現(xiàn)在還需要各種 HTTP Client 依賴包嗎?

4. JEP 323 - Lambda 局部變量推斷

在 Java 10 中引入了 var 語(yǔ)法,可以自動(dòng)推斷變量類型。在 Java 11 中這個(gè)語(yǔ)法糖可以在 Lambda 表達(dá)式中使用了。

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 和其他變量類型混用。

Java11的新特性是什么

image

<figcaption style="margin: 5px 0px 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; text-align: center; color: rgb(136, 136, 136); font-size: 14px;">Lambda 中 var 不能混用</figcaption>

5. JEP 330 - 單命令運(yùn)行 Java

自從學(xué)習(xí) Java 的第一天,我們就知道運(yùn)行一個(gè) Java 文件,要先用 javac 命令編譯,再用 java命令運(yùn)行,而現(xiàn)在只要一個(gè) java 命令就可以運(yùn)行了。

$ cat Main.javapublic class Main {    public static void main(String[] args) {        System.out.println("wechat:wn8398");    }}$ java Main.javawechat:wn8398

6. 免費(fèi)的飛行記錄器

商業(yè)版 JDK 中一直有一款低開銷的事件信息收集工具,也就是飛行記錄器(Java Flight Recorder),它可以對(duì) JVM 進(jìn)行檢查、分析、記錄等。當(dāng)出現(xiàn)未知異常時(shí)可以通過(guò)記錄進(jìn)行故障分析。這個(gè)好用的工具在 Java 11 中將開源免費(fèi)。所有人都可以使用這個(gè)功能了。

其他更新

  1. JEP 309 - 添加動(dòng)態(tài)文件常量。

  2. JEP 318 - 添加 Epsilon 垃圾收集器。

  3. 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)。

  4. JEP 329 - 增加加密算法 chacha20,poly1305 的實(shí)現(xiàn)。

  5. JEP 333 - 引入實(shí)驗(yàn)性的 ZGC 垃圾收集器,保證停擺時(shí)間不會(huì)超過(guò) 10ms。

  6. JEP 335 - 廢棄 Nashorn JavaScript 引擎

感謝各位的閱讀,以上就是“Java11的新特性是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Java11的新特性是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI