<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Elasticsearch 8.0 官宣:擁抱 Java 17!下一個里程碑式版本!

          共 3361字,需瀏覽 7分鐘

           ·

          2022-02-17 01:24

          ?

          你好,我是 Guide,簡單分享一下 Elasticsearch 8.0 運行最低要求 Java 17 的消息。關(guān)于?Elasticsearch 8.0 的詳細介紹請看次條推送,關(guān)于 Elasticsearch 實戰(zhàn),請看?1W字|40 圖|硬核 ES 實戰(zhàn)?這篇文章。

          下面是正文。

          新版任你發(fā),我用 Java 8,這可能是當下 Java 開發(fā)者的真實寫照。甚是有的 Java 程序員還依然在堅守 Java 6,Java 7 ,這份專一讓喜歡追新版本的 Guide 汗顏。

          我說,兄弟啊,Java 版本又不是媳婦,咱沒必要這么專一吧!

          不過,時代可能真的要拋棄 Java 8,全面擁抱 Java 17 了。我也非常相信?Java 17? 會成為像?Java 8 那樣的里程碑式的版本!

          Spring Boot 3.0

          前些天,相信小伙伴們都注意到了,SpringBoot 發(fā)布了 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 來啦?。。∽钚∫蕾?Java17!升還是不升?這篇文章來了解 SpringBoot3.0.0 的詳細信息。

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

          Elastic 8

          湊巧的是,2022 年 2 月 11 日,Elastic 也發(fā)布了新版本 Elastic 8,這個版本跟上個版本間隔了 3 年。下面的截圖是 Issue 79873,地址:https://github.com/elastic/elasticsearch/pull/79873 。

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

          我們在?Elastic 8 的官網(wǎng)升級指南中也能看到對應(yīng)的信息了:

          地址:https://www.elastic.co/guide/en/elasticsearch/reference/8.0/migrating-8.0.html

          Java 17

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

          Java 9

          • 私有接口方法
          • 默認垃圾收集器改為 G1
          • HTTP client,支持 WebSocket、HTTP/2、HTTPS/TLS、非阻塞 API。

          Java 10

          • 局部變量類型推斷,可以使用 var 類型來定義變量。
          • 不可變集合
          • G1 支持并行 Full GC
          • 基于 Java 的 JIT 編譯器 Graal
          • 支持在不執(zhí)行全局安全點的情況下執(zhí)行線程回調(diào),這樣可以在不停止所有線程的情況下停止單個線程。

          Java 11

          • 標準 HTTP Client 升級
          • 引入 ZGC 垃圾收集器
          • Flight Recorder,可以收集基于 OS、JVM和JDK 事件產(chǎn)生的數(shù)據(jù)。
          • 對Stream、Optional、集合 API進行增強。

          Java 12

          • 引入 Switch 表達式
          • Shenandoah GC 垃圾收集算法
          • JMH 基準測試
          • G1 支持可中斷的 mixed GC,將 Mixed GC 拆分為強制部分和可選部分,強制部分一定會被回收,可選部分可以不被回收,這樣垃圾收集過程中優(yōu)先處理強制集,更容易滿足暫停時間目標。
          • G1 可以歸還不使用的內(nèi)存給操作系統(tǒng)

          Java 13

          • switch 優(yōu)化更新,增加 yield 關(guān)鍵字用于返回結(jié)果。
          • ZGC 支持將未使用的內(nèi)存歸還操作系統(tǒng)
          • 引入了文本塊,可以使用 """ 三個引號表示文本塊,示例代碼如下:
          String?html?=?"""
          ??
          ???
          ????

          Hello,?world


          ???
          ??
          "
          "";

          Java 14

          • instanceof 語法簡化,可以直接給對象賦值:
          if?(obj?instanceof?String?s)?{?
          ????//這里可以使用?s?變量
          }?else?{
          ????//這里不能使用?s?變量
          }
          • 引入 Record,類似于枚舉類型,具有 Lombok 功能,可以自動生成構(gòu)造器、equals、getter 等方法。
          • 放棄 CMS

          Java 15

          • 引入 hidden class
          • String.substring 優(yōu)化,如果長度為 0,返回 null
          • 引入 Sealed class

          Java 16

          • Stream新增toList方法
          • 提供jpackage
          • java.time 根據(jù)時段獲取時間

          Java 17

          • 升級 switch 使用,switch可直接用 instanceof 模式匹配選擇,不過需要提前做 null 判斷(下面代碼選自 oschina):
          Object?o;
          switch?(o)?{
          ????case?null??????->?System.out.println("首先判斷對象是否為空,走空指針邏輯等后續(xù)邏輯");
          ????case?String?s??->?System.out.println("判斷是否為字符串,s:"?+?s);
          ????case?record?p??->?System.out.println("判斷是否為Record類型:?"?+?p.toString());
          ????case?int[]?arr?->?System.out.println("判斷是否為數(shù)組,展示int數(shù)組的長度"?+?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("判斷是否為普通用戶實現(xiàn)類,然后走普通用戶邏輯");
          ????case?UserVipService????->?System.out.println("判斷是否為vip用戶實現(xiàn)類,然后走vip用戶邏輯");
          ????default???->?System.out.println("Something?else");
          }
          • 默認啟用 Parallel GC
          • 增強TreeMap
          • 統(tǒng)一日志異步刷新,先將日志寫入緩存,獨立線程負責刷新到相應(yīng)輸出。

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

          總結(jié)

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

          知識星球內(nèi)部的讀書筆記中就有 Java 新特性相關(guān)的總結(jié)分享。


          ··········? END? ··············

          也許你還想看
          ??|?官宣!JavaGuide 兄弟版本來啦!
          ??|?IntelliJ IDEA 老司機,還沒用過這 5 個 Intellij IDEA 調(diào)試魔法?
          ??|?用 Java 寫個沙盒塔防游戲!已上架 Steam,Apple Store
          ??|?干掉 CRUD!這個開發(fā)神器效率爆炸,功能強大
          ? |?Java 大殺器來了!性能提升一個數(shù)量級
          ? |?豆瓣 9.7!這本技術(shù)書籍直接封神了
          ? |?兩天兩夜,1M圖片優(yōu)化到100kb!
          ? |?上岸騰訊 PCG 和阿里云!

          如果本文對你有幫助的話,歡迎點贊&在看&分享,這對我繼續(xù)分享&創(chuàng)作優(yōu)質(zhì)文章非常重要。感謝????

          瀏覽 287
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色景苑久久久 | 四虎性爱视频 | 人妻巨大乳HD免费看 | 国产精品久久久爽爽爽麻豆色哟哟 | 韩国一道本在线 |