新聞中心
這篇文章主要講解了“Java11的新特性是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java11的新特性是什么”吧!
1. String API
字符串絕對是 Java 中最常用的一個類了,String 類的方法使用率也都非常的高,在 Java 11
中又為 String 類帶來了一系列的好用操作。
isBlank() 判空。
// 判空,blank里我放入了全角空格,半角空格,TABString blank = " ";System.out.println(blank.isBlank());// 輸出// true
lines() 分割獲取字符串流。
// lines 返回一個 StreamString line = "a\nb\nc";Stream
lines = line.lines();// 使用 lambda 遍歷lines.forEach(System.out::println);// 輸出// a// b// c repeat() 復(fù)制字符串
// 復(fù)制字符串String repeat = "我的微信:wn8398,";String repeat3 = repeat.repeat(3);System.out.println(repeat3);// 輸出// 我的微信:wn8398,我的微信:wn8398,我的微信:wn8398,
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)建臨時文件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ā)起一個請求。
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();// 同步HttpResponseresponse = client.send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());
更多的如同步異步請求,并發(fā)訪問,設(shè)置代理等方式,可以參考 OpenJDK 官方文檔。
你現(xiàn)在還需要各種 HTTP Client 依賴包嗎?
4. JEP 323 - Lambda 局部變量推斷
在 Java 10
中引入了 var
語法,可以自動推斷變量類型。在 Java 11
中這個語法糖可以在 Lambda 表達(dá)式中使用了。
var hashMap = new HashMap();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 和其他變量類型混用。
image
5. JEP 330 - 單命令運行 Java
自從學(xué)習(xí) Java 的第一天,我們就知道運行一個 Java 文件,要先用 javac
命令編譯,再用 java
命令運行,而現(xiàn)在只要一個 java
命令就可以運行了。
$ cat Main.javapublic class Main { public static void main(String[] args) { System.out.println("wechat:wn8398"); }}$ java Main.javawechat:wn8398
6. 免費的飛行記錄器
商業(yè)版 JDK 中一直有一款低開銷的事件信息收集工具,也就是飛行記錄器(Java Flight Recorder),它可以對 JVM 進(jìn)行檢查、分析、記錄等。當(dāng)出現(xiàn)未知異常時可以通過記錄進(jìn)行故障分析。這個好用的工具在 Java 11
中將開源免費。所有人都可以使用這個功能了。
其他更新
JEP 309 - 添加動態(tài)文件常量。
JEP 318 - 添加 Epsilon 垃圾收集器。
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)。
JEP 329 - 增加加密算法 chacha20,poly1305 的實現(xiàn)。
JEP 333 - 引入實驗性的 ZGC 垃圾收集器,保證停擺時間不會超過 10ms。
JEP 335 - 廢棄 Nashorn JavaScript 引擎
感謝各位的閱讀,以上就是“Java11的新特性是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Java11的新特性是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
分享題目:Java11的新特性是什么-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/hedio.html