日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

继 SpringBoot 3.0,Elasticsearch8.0 官宣:拥抱 Java 17

發布時間:2023/12/4 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 继 SpringBoot 3.0,Elasticsearch8.0 官宣:拥抱 Java 17 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是君哥。

新版任你發,我用 Java 8,這可能是當下 Java 開發者的真實寫照。不過時代可能真的要拋棄 Java 8,全面擁抱 Java 17 了。

Spring Boot 3.0

前些天,相信小伙伴們都注意到了,SpringBoot 發布了 3.0.0-M1 版本,并官宣全面擁抱 Java 17,下面的截圖是 Release Notes 中的一段:

其他的新特性大家可以去 Github 查看。

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0.0-M1-Release-Notes/16c166b5fb4232998a8cfd3966c2851ec1eddf02

Spring Boot 3.0.0-M1 版本發布,也意味著 Spring Boot 進入 3.x 版本的迭代,同時也看到,3.x 版本開始 Spring Boot 要全面擁抱 Java 17 了。

Elastic 8

湊巧的是,2022 年 2 月 11 日,Elastic 也發布了新版本 Elastic 8,這個版本跟上個版本間隔了 3 年。下面的截圖是 Issue 79873:

可以看到,運行新的 Elasticsearch 版本需要 Java 17 了。

Java 17

從 Java 8 以后,每個版本發布都增加了哪些新特性呢?我們一起來看一下。

Java 9

  • 私有接口方法

  • 默認垃圾收集器改為 G1

  • HTTP client,支持 WebSocket、HTTP/2、HTTPS/TLS、非阻塞 API。

Java 10

  • 局部變量類型推斷,可以使用 var 類型來定義變量。

  • 不可變集合

  • G1 支持并行 Full GC

  • 基于 Java 的 JIT 編譯器 Graal

  • 支持在不執行全局安全點的情況下執行線程回調,這樣可以在不停止所有線程的情況下停止單個線程。

Java 11

  • 標準 HTTP Client 升級

  • 引入 ZGC 垃圾收集器

  • Flight Recorder,可以收集基于 OS、JVM和JDK 事件產生的數據。

  • 對Stream、Optional、集合 API進行增強。

Java 12

  • 引入 Switch 表達式

  • Shenandoah GC 垃圾收集算法

  • JMH 基準測試

  • G1 支持可中斷的 mixed GC,將 Mixed GC 拆分為強制部分和可選部分,強制部分一定會被回收,可選部分可以不被回收,這樣垃圾收集過程中優先處理強制集,更容易滿足暫停時間目標。

  • G1 可以歸還不使用的內存給操作系統

Java 13

  • switch 優化更新,增加 yield 關鍵字用于返回結果。

  • ZGC 支持將未使用的內存歸還操作系統

  • 引入了文本塊,可以使用 """ 三個引號表示文本塊,示例代碼如下:

String?html?=?"""<html><body><p>Hello,?world</p></body></html> """;

Java 14

  • instanceof 語法簡化,可以直接給對象賦值:

if?(obj?instanceof?String?s)?{?//這里可以使用?s?變量 }?else?{//這里不能使用?s?變量 }
  • 引入 Record,類似于枚舉類型,具有 Lombok 功能,可以自動生成構造器、equals、getter 等方法。

  • 放棄 CMS

Java 15

  • 引入 hidden class

  • String.substring 優化,如果長度為 0,返回 null

  • 引入 Sealed class

Java 16

  • Stream新增toList方法

  • 提供jpackage

  • java.time 根據時段獲取時間

Java 17

  • 升級 switch 使用,switch可直接用 instanceof 模式匹配選擇,不過需要提前做 null 判斷(下面代碼選自 oschina):

Object?o; switch?(o)?{case?null??????->?System.out.println("首先判斷對象是否為空,走空指針邏輯等后續邏輯");case?String?s??->?System.out.println("判斷是否為字符串,s:"?+?s);case?record?p??->?System.out.println("判斷是否為Record類型:?"?+?p.toString());case?int[]?arr?->?System.out.println("判斷是否為數組,展示int數組的長度"?+?ia.length);case?Integer?i?->?System.out.println("判斷是否為Intger對象,i:"?+?i);case?Student?s???->?System.out.println("判斷是否為具體學生對象,student:"?+?s.toString());case?UserCommonService?->?System.out.println("判斷是否為普通用戶實現類,然后走普通用戶邏輯");case?UserVipService????->?System.out.println("判斷是否為vip用戶實現類,然后走vip用戶邏輯");default???->?System.out.println("Something?else"); }
  • 默認啟用 Parallel GC

  • 增強TreeMap

  • 統一日志異步刷新,先將日志寫入緩存,獨立線程負責刷新到相應輸出。

上面的版本只有 Java 11 和 Java 17 是 LTS(Long Term Support) 版本

總結

全面擁抱 Java 17 還沒有真的到來,但已經在路上了,作為程序員的我們應該做準備了。

總結

以上是生活随笔為你收集整理的继 SpringBoot 3.0,Elasticsearch8.0 官宣:拥抱 Java 17的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。