自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對(duì)不起我拖后腿了!我才剛用上Java 11

開發(fā) 后端
下文將要實(shí)驗(yàn)驗(yàn)證的一些新特性其實(shí)也并非 Java11才引入,很多其實(shí)在 Java9和 Java10時(shí)就已經(jīng)引入,只不過(guò)到了 Java11這個(gè)穩(wěn)定版才沉淀下來(lái)。

[[318036]]

一個(gè)小糾結(jié)

很多初學(xué)Java的小伙伴經(jīng)常咨詢:

  • 到底該安裝哪個(gè)版本的JDK比較好?
  • Java 8到底還夠不夠用?
  • Java 11究竟有什么改進(jìn)?
  • 是不是Java版本越新越好?
  • ……

是這樣,官網(wǎng)現(xiàn)在其實(shí)都已經(jīng)出到Java 13版本了,并且提供下載使用。

 

對(duì)不起我拖后腿了!我才剛用上Java 11

但目前市場(chǎng)上主流的穩(wěn)定版當(dāng)然還得屬Java 8和Java 11,而目前大部分公司的生產(chǎn)環(huán)境還是 Java8居多。所以如果從自學(xué)角度出發(fā),我覺(jué)得這兩個(gè)版本都OK,其他中間的一些比如 Java9、 Java10這些非穩(wěn)定版就不用考慮了。

Java11 vs Java8

 

對(duì)不起我拖后腿了!我才剛用上Java 11

Java 11相對(duì)于Java 8確實(shí)有一部分進(jìn)化,除了有很多內(nèi)部的升級(jí)(比如開銷和時(shí)延更低的GC、TLS1.3加持等等)之外,對(duì)于初學(xué)使用者來(lái)說(shuō)也有一些語(yǔ)言使用層面的進(jìn)化。

正好最近我在自己的個(gè)人小項(xiàng)目上嘗試升級(jí)使用了一下 Java11(公司項(xiàng)目咱也不敢動(dòng)、也不敢問(wèn),只好動(dòng)自己的個(gè)人項(xiàng)目),因此本文從實(shí)際代碼編寫角度來(lái)大致體驗(yàn)一下我個(gè)人使用 Java11之后相對(duì) Java8所感覺(jué)到的一些比較深刻的進(jìn)化,官方文檔里說(shuō)得也非常清楚了: https://docs.oracle.com/en/java/javase/11/

我這次實(shí)驗(yàn)裝的 Java11版本是 11.0.6:

 

對(duì)不起我拖后腿了!我才剛用上Java 11

下文將要實(shí)驗(yàn)驗(yàn)證的一些新特性其實(shí)也并非 Java11才引入,很多其實(shí)在 Java9和 Java10時(shí)就已經(jīng)引入,只不過(guò)到了 Java11這個(gè)穩(wěn)定版才沉淀下來(lái)。

變量類型推斷

新版Java引入了一個(gè)全新的類型關(guān)鍵字 var,用 var來(lái)定義的變量不用寫具體類型,編譯器能根據(jù) =右邊的實(shí)際賦值來(lái)自動(dòng)推斷出變量的類型:

1、普通局部變量

 

對(duì)不起我拖后腿了!我才剛用上Java 11

怎么樣?是不是有一種在使用類似JavaScript這種弱類型語(yǔ)言的錯(cuò)覺(jué)?

2、for循環(huán)中使用

 

對(duì)不起我拖后腿了!我才剛用上Java 11

這地方就能看出用 var定義局部變量的優(yōu)勢(shì)了,假如這個(gè)例子中集合里的元素類型更為復(fù)雜,是類似 List>這種嵌套類型的話, var定義就非常簡(jiǎn)潔明了!

3、當(dāng)然,有些情況是不能使用的

var類型變量一旦賦值后,重新賦不同類型的值是不行的,比如:

 

對(duì)不起我拖后腿了!我才剛用上Java 11

定義 var類型變量沒(méi)有初始化是不行的,比如:

 

對(duì)不起我拖后腿了!我才剛用上Java 11

另外,像類的 成員變量類型、 方法入?yún)㈩愋汀?返回值類型等是不能使用 var的,比如:

 

對(duì)不起我拖后腿了!我才剛用上Java 11

官方HTTP Client加持

是的!

現(xiàn)在 JDK官方就自帶 HTTPClient了,位于 java.net.http包下,支持發(fā)送同步、異步的 HTTP請(qǐng)求,這樣一來(lái),以前咱們常用的HTTP請(qǐng)求客戶端諸如: OKHttp、 HttpClient這種現(xiàn)在都可以退下了!

發(fā)送同步請(qǐng)求:

 

對(duì)不起我拖后腿了!我才剛用上Java 11

發(fā)送異步請(qǐng)求:

 

對(duì)不起我拖后腿了!我才剛用上Java 11

當(dāng)然你也可以自定義請(qǐng)求頭,比如攜帶 JWT Token權(quán)限信息去請(qǐng)求等:

 

對(duì)不起我拖后腿了!我才剛用上Java 11

String處理增強(qiáng)

新版字符串 String類型增加了諸如: isBlank()、 strip()、 repeat()等方便的字符串處理方法

 

對(duì)不起我拖后腿了!我才剛用上Java 11

集合增強(qiáng)

主要是增加了諸如 of()和 copyOf()等方法用于更加方便的創(chuàng)建和復(fù)制集合類型

 

對(duì)不起我拖后腿了!我才剛用上Java 11

函數(shù)式編程增強(qiáng)

我印象最深的是對(duì) Stream流增加了諸如 takeWhile()和 dropWhile()的截止結(jié)算方法:

 

對(duì)不起我拖后腿了!我才剛用上Java 11

文件讀寫增強(qiáng)

1、Files類增強(qiáng)

我們以前心心念的直接能把文件內(nèi)容讀取到 String以及 String回寫到文件的功能終于支持了,可以通過(guò) Files類的靜態(tài)方法 writeString()和 readString()完成:

 

對(duì)不起我拖后腿了!我才剛用上Java 11

2、InputStream增強(qiáng)

InputStream則增加了一個(gè) transferTo()方法,直接將數(shù)據(jù)丟到 OutputStream去:

 

對(duì)不起我拖后腿了!我才剛用上Java 11

支持源文件直接運(yùn)行(666!)

比如我寫一個(gè)最簡(jiǎn)單的 HelloWorld程序:

 

對(duì)不起我拖后腿了!我才剛用上Java 11

并保存為 hello.java文件,這時(shí)候可以直接用 java指令去運(yùn)行這個(gè)Java源文件,直接省去以前 javac編譯源文件的過(guò)程:

  1. java hello.java 

 

對(duì)不起我拖后腿了!我才剛用上Java 11

怎么樣?是不是和python源文件的運(yùn)行有點(diǎn)像?這個(gè)信息量就有點(diǎn)大了,大家可以自行腦補(bǔ)一下

小結(jié)

Java 11確有很多改進(jìn),但還是那句話,對(duì)于初學(xué)者來(lái)說(shuō)Java 8足夠啦,沒(méi)必要刻意求新,穩(wěn)才是最重要的!

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2011-01-13 14:55:48

周金橋

2020-01-18 11:13:08

CPU程序存儲(chǔ)

2023-01-09 07:50:29

開源開發(fā)者項(xiàng)目

2015-08-17 09:43:12

編程創(chuàng)造程序員

2021-03-01 09:16:10

程序員系統(tǒng)模式

2017-10-18 12:05:40

云應(yīng)用云備份數(shù)據(jù)

2016-11-09 09:59:01

大數(shù)據(jù)產(chǎn)業(yè)奪冠

2011-03-03 15:51:54

2015-01-21 15:01:32

手游開發(fā)中小開發(fā)者

2014-06-19 10:31:14

團(tuán)隊(duì)項(xiàng)目

2016-01-14 10:27:29

網(wǎng)速帶寬

2012-05-24 15:53:57

獵豹瀏覽器

2020-02-25 09:43:13

區(qū)塊鏈blockchain疫情

2013-05-20 16:30:37

移動(dòng)應(yīng)用App推廣

2012-08-15 10:36:53

云計(jì)算網(wǎng)速價(jià)格戰(zhàn)

2018-09-24 09:15:12

數(shù)據(jù)倉(cāng)庫(kù)大數(shù)據(jù)

2009-09-05 22:09:52

多核計(jì)算

2015-06-11 10:08:57

網(wǎng)絡(luò)延遲應(yīng)用性能網(wǎng)絡(luò)監(jiān)控

2019-12-02 15:22:34

硬件 游戲顯存

2021-03-02 11:31:51

技術(shù)資訊
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)