成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

對不起我拖后腿了!我才剛用上Java 11

開發 后端
下文將要實驗驗證的一些新特性其實也并非 Java11才引入,很多其實在 Java9和 Java10時就已經引入,只不過到了 Java11這個穩定版才沉淀下來。

[[318036]]

一個小糾結

很多初學Java的小伙伴經常咨詢:

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

是這樣,官網現在其實都已經出到Java 13版本了,并且提供下載使用。

 

對不起我拖后腿了!我才剛用上Java 11

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

Java11 vs Java8

 

對不起我拖后腿了!我才剛用上Java 11

Java 11相對于Java 8確實有一部分進化,除了有很多內部的升級(比如開銷和時延更低的GC、TLS1.3加持等等)之外,對于初學使用者來說也有一些語言使用層面的進化。

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

我這次實驗裝的 Java11版本是 11.0.6:

 

對不起我拖后腿了!我才剛用上Java 11

下文將要實驗驗證的一些新特性其實也并非 Java11才引入,很多其實在 Java9和 Java10時就已經引入,只不過到了 Java11這個穩定版才沉淀下來。

變量類型推斷

新版Java引入了一個全新的類型關鍵字 var,用 var來定義的變量不用寫具體類型,編譯器能根據 =右邊的實際賦值來自動推斷出變量的類型:

1、普通局部變量

 

對不起我拖后腿了!我才剛用上Java 11

怎么樣?是不是有一種在使用類似JavaScript這種弱類型語言的錯覺?

2、for循環中使用

 

對不起我拖后腿了!我才剛用上Java 11

這地方就能看出用 var定義局部變量的優勢了,假如這個例子中集合里的元素類型更為復雜,是類似 List>這種嵌套類型的話, var定義就非常簡潔明了!

3、當然,有些情況是不能使用的

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

 

對不起我拖后腿了!我才剛用上Java 11

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

 

對不起我拖后腿了!我才剛用上Java 11

另外,像類的 成員變量類型、 方法入參類型、 返回值類型等是不能使用 var的,比如:

 

對不起我拖后腿了!我才剛用上Java 11

官方HTTP Client加持

是的!

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

發送同步請求:

 

對不起我拖后腿了!我才剛用上Java 11

發送異步請求:

 

對不起我拖后腿了!我才剛用上Java 11

當然你也可以自定義請求頭,比如攜帶 JWT Token權限信息去請求等:

 

對不起我拖后腿了!我才剛用上Java 11

String處理增強

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

 

對不起我拖后腿了!我才剛用上Java 11

集合增強

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

 

對不起我拖后腿了!我才剛用上Java 11

函數式編程增強

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

 

對不起我拖后腿了!我才剛用上Java 11

文件讀寫增強

1、Files類增強

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

 

對不起我拖后腿了!我才剛用上Java 11

2、InputStream增強

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

 

對不起我拖后腿了!我才剛用上Java 11

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

比如我寫一個最簡單的 HelloWorld程序:

 

對不起我拖后腿了!我才剛用上Java 11

并保存為 hello.java文件,這時候可以直接用 java指令去運行這個Java源文件,直接省去以前 javac編譯源文件的過程:

  1. java hello.java 

 

對不起我拖后腿了!我才剛用上Java 11

怎么樣?是不是和python源文件的運行有點像?這個信息量就有點大了,大家可以自行腦補一下

小結

Java 11確有很多改進,但還是那句話,對于初學者來說Java 8足夠啦,沒必要刻意求新,穩才是最重要的!

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2011-01-13 14:55:48

周金橋

2020-01-18 11:13:08

CPU程序存儲

2023-01-09 07:50:29

開源開發者項目

2015-08-17 09:43:12

編程創造程序員

2021-03-01 09:16:10

程序員系統模式

2016-11-09 09:59:01

大數據產業奪冠

2017-10-18 12:05:40

云應用云備份數據

2011-03-03 15:51:54

2015-01-21 15:01:32

手游開發中小開發者

2016-01-14 10:27:29

網速帶寬

2014-06-19 10:31:14

團隊項目

2012-05-24 15:53:57

獵豹瀏覽器

2013-05-20 16:30:37

移動應用App推廣

2020-02-25 09:43:13

區塊鏈blockchain疫情

2021-03-02 11:31:51

技術資訊

2019-12-02 15:22:34

硬件 游戲顯存

2015-06-11 10:08:57

網絡延遲應用性能網絡監控

2009-09-05 22:09:52

多核計算

2013-06-20 11:11:00

程序員經理

2012-08-15 10:36:53

云計算網速價格戰
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 粉嫩av| 精品福利视频一区二区三区 | 91精品国产综合久久久久久蜜臀 | 美女一级a毛片免费观看97 | av黄色在线 | 天天色天天色 | 久一精品 | 午夜国产精品视频 | 日本三级网站在线观看 | 午夜影院在线免费观看视频 | 日韩1区2区 | 一级久久久久久 | 一级高清 | 一级特黄视频 | 日韩中文字幕区 | 欧美精品福利视频 | 欧美日韩在线一区二区三区 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 91激情视频| 亚洲精品成人 | 久久综合久久综合久久综合 | 久久免费精品 | 一级黄色毛片子 | 一级特黄色毛片 | 欧美视频在线免费 | 中文字幕精品一区久久久久 | 日韩精品一区二区三区中文在线 | 天天躁天天操 | 99在线视频观看 | 欧美激情va永久在线播放 | 国产一区二区视频免费在线观看 | www成人免费| 国产美女在线播放 | 亚洲人在线 | 日本aⅴ中文字幕 | 国产欧美一区二区三区另类精品 | 国产免费一区二区 | 久久不射电影网 | 99久久久久国产精品免费 | 久久综合久 | 国产一区二区电影网 |