JavaSE核心知識點04工具04-01(JDK21)

🤟致敬讀者

  • 🟩感謝閱讀🟦笑口常開🟪生日快樂?早點睡覺

📘博主相關

  • 🟧博主信息🟨博客首頁🟫專欄推薦🟥活動信息

文章目錄

    • JavaSE核心知識點04工具04-01(JDK21)
      • 一、JDK 21 簡介
      • 二、JDK 21 的核心新特性
        • 1. **虛擬線程(Virtual Threads)**
        • 2. **分代 ZGC(Generational ZGC)**
        • 3. **序列集合(Sequenced Collections)**
        • 4. **模式匹配增強(Pattern Matching)**
        • 5. **字符串模板(String Templates)**
        • 6. **未命名模式和變量(Unnamed Patterns & Variables)**
      • 三、如何安裝和配置 JDK 21
      • 四、學習路徑建議
      • 五、注意事項
      • 六、資源推薦


📃文章前言

  • 🔷文章均為學習工作中整理的筆記。
  • 🔶如有錯誤請指正,共同學習進步。

JavaSE核心知識點04工具04-01(JDK21)

我將從基礎概念主要特性學習路徑等方面為你詳細講解 JDK 21,并提供一些代碼示例幫助你理解。本文內容較長,但會盡量通俗易懂。

在這里插入圖片描述


一、JDK 21 簡介

  • 發布時間:2023 年 9 月
  • 定位:JDK 21 是 Oracle 的長期支持版本(LTS),這意味著它會獲得多年的更新和支持,適合企業級應用。
  • 核心目標:提升開發效率、性能優化、簡化代碼復雜度。

二、JDK 21 的核心新特性

以下是 JDK 21 中最值得關注的特性,尤其是對新手友好的改進:


1. 虛擬線程(Virtual Threads)
  • 是什么:輕量級線程,由 JVM 管理(而非操作系統),可大幅提升并發性能。
  • 為什么重要:傳統線程(平臺線程)創建和切換成本高,虛擬線程可同時運行數百萬個而無需擔心資源耗盡。
  • 示例代碼
    // 創建虛擬線程執行任務
    Thread virtualThread = Thread.ofVirtual().start(() -> {System.out.println("Hello from virtual thread!");
    });
    virtualThread.join(); // 等待線程結束
    

2. 分代 ZGC(Generational ZGC)
  • 是什么:ZGC 是一種低延遲垃圾回收器,JDK 21 將其升級為分代模式。
  • 為什么重要:分代 ZGC 能更高效處理短期對象(如臨時變量),減少垃圾回收停頓時間。
  • 啟用方式:JVM 參數 -XX:+UseZGC -XX:+ZGenerational

3. 序列集合(Sequenced Collections)
  • 是什么:新增 SequencedCollectionSequencedSet 等接口,統一集合的“順序訪問”操作。
  • 示例代碼
    List<String> list = new ArrayList<>(List.of("a", "b", "c"));
    // 獲取第一個和最后一個元素
    String first = list.getFirst();   // "a"
    String last = list.getLast();     // "c"
    // 逆序視圖
    SequencedCollection<String> reversed = list.reversed();
    

4. 模式匹配增強(Pattern Matching)
  • 是什么:簡化 instanceof 檢查和類型轉換,使代碼更簡潔。
  • 示例代碼
    Object obj = "Hello";
    if (obj instanceof String s) { // 直接匹配并賦值給變量 sSystem.out.println(s.toUpperCase()); // 輸出 "HELLO"
    }
    

5. 字符串模板(String Templates)
  • 是什么:類似其他語言的字符串插值功能,避免繁瑣的字符串拼接。
  • 示例代碼
    String name = "Alice";
    int age = 30;
    String info = STR."My name is \{name}, age is \{age}";
    // 輸出 "My name is Alice, age is 30"
    

6. 未命名模式和變量(Unnamed Patterns & Variables)
  • 是什么:用下劃線 _ 忽略未使用的變量或模式,增強代碼可讀性。
  • 示例代碼
    try {int result = calculate();
    } catch (Exception _) { // 忽略異常對象System.out.println("Error occurred");
    }
    

三、如何安裝和配置 JDK 21

  1. 下載

    • Oracle JDK:訪問 Oracle官網(需注冊賬號)。
    • OpenJDK:推薦使用 Eclipse Temurin 或 Amazon Corretto。
  2. 環境變量配置

    • 設置 JAVA_HOME 指向 JDK 21 安裝目錄。
    • JAVA_HOME/bin 添加到 PATH 環境變量。
  3. 驗證安裝

    java -version
    # 應輸出 "java version "21" ..."
    

四、學習路徑建議

  1. 先學 Java 基礎:掌握語法、面向對象、集合框架等。
  2. 逐步嘗試新特性
    • 虛擬線程字符串模板入手(直觀且實用)。
    • 再學習模式匹配序列集合
  3. 動手實踐:寫小項目(如并發任務、數據處理)應用新特性。
  4. 官方文檔:閱讀 Oracle JDK 21 文檔。

五、注意事項

  1. 預覽特性:某些功能(如字符串模板)需啟用預覽模式:
    javac --release 21 --enable-preview Main.java
    java --enable-preview Main
    
  2. IDE 支持:確保 IntelliJ IDEA 或 Eclipse 更新到最新版本以支持 JDK 21。

六、資源推薦

  • 官方教程:Java Tutorials
  • 書籍:《Java核心技術 卷Ⅰ》(第12版已涵蓋新特性)
  • 社區:Stack Overflow、GitHub 開源項目。

希望這些內容能幫助你入門 JDK 21!如果有具體問題或需要更深入的解釋,請隨時告訴我! 😊



📜文末寄語

  • 🟠關注我,獲取更多內容。
  • 🟡技術動態、實戰教程、問題解決方案等內容持續更新中。
  • 🟢《全棧知識庫》技術交流和分享社區,集結全棧各領域開發者,期待你的加入。
  • 🔵?加入開發者的《專屬社群》,分享交流,技術之路不再孤獨,一起變強。
  • 🟣點擊下方名片獲取更多內容🍭🍭🍭👇

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/82417.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/82417.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/82417.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫入門:以商品訂單系統為例

數據庫入門&#xff1a;以商品訂單系統為例 一、前言 數據庫是現代軟件開發中不可或缺的基礎&#xff0c;掌握數據庫的基本概念和操作&#xff0c;是每個開發者的必經之路。本文將以“商品-品牌-客戶-訂單-訂單項”為例&#xff0c;帶你快速入門數據庫的核心知識和基本操作。…

UE失落方舟特效學習 筆記01

通過法線扭曲貼圖 Begin Object Class/Script/UnrealEd.MaterialGraphNode Name"MaterialGraphNode_0" ExportPath"/Script/UnrealEd.MaterialGraphNode/Engine/Transient.M_RadialUV_01:MaterialGraph_0.MaterialGraphNode_0"Begin Object Class/Script/E…

跨境支付風控失效?用代理 IP 構建「地域 - 設備 - 行為」三維防護網

針對跨境支付風控失效問題&#xff0c;結合代理IP技術構建「地域-設備-行為」三維防護網是當前最有效的解決方案。以下是基于最新實踐的技術路徑與策略指南&#xff1a; 一、地域維度&#xff1a;IP地理特征精準匹配 IP屬地真實性驗證 優先選擇住宅代理IP&#xff08;Residenti…

AI的“軟肋”:架構設計與業務分析的壁壘

盡管人工智能&#xff08;AI&#xff09;在代碼生成、數據分析等方面取得了顯著進展&#xff0c;但在架構設計和業務分析的核心領域&#xff0c;人類的智慧和經驗仍然是不可替代的。這些領域往往涉及高度的抽象思維、戰略遠見、對復雜商業邏輯的深刻理解以及在模糊不清的環境中…

【Redis實戰篇】基于Redis的功能實現附近商鋪查詢(Geo),用戶簽到與統計(Bitmap),網站UV統計(HyperLogLog)

文章目錄 附近商鋪GEOSEARCH 實現語法參數解釋 GEORADIUS 實現基本語法參數詳解必選參數可選參數參數詳解必選參數 代碼實現 用戶簽到BitmapRedis 中 Bitmap 基本操作1. 設置位值2. 獲取位值3. 統計位值為 1 的數量4. 位圖運算 Spring Data Redis 中操作 Bitmap1. 操作示例(1) …

【C++高階一】二叉搜索樹

【C高階一】二叉搜索樹剖析 1.什么是二叉搜索樹2.二叉搜索樹非遞歸實現2.1插入2.2刪除2.2.1刪除分析一2.2.2刪除分析二 2.3查找 3.二叉搜索樹遞歸實現3.1插入3.2刪除3.3查找 4.完整代碼 1.什么是二叉搜索樹 任何一個節點&#xff0c;他的左子樹的所有節點都比他小&#xff0c;右…

前端面試熱門知識點總結

URL從輸入到頁面展示的過程 版本1 1.用戶在瀏覽器的地址欄輸入訪問的URL地址。瀏覽器會先根據這個URL查看瀏覽器緩存-系統緩存-路由器緩存&#xff0c;若緩存中有&#xff0c;直接跳到第6步操作&#xff0c;若沒有&#xff0c;則按照下面的步驟進行操作。 2.瀏覽器根據輸入的UR…

Swagger | 解決Springboot2.x/3.x不兼容和依賴報錯等問題

目錄 不兼容報錯提醒 1. 修改Spring Boot版本 2. 修改application.yml配置文件 3. 使用其他替代方案 依賴兼容 配置 Yaml 文件 依賴報錯提醒 解決方法 1. 選擇一個庫 2. 移除springfox依賴 3. 添加springdoc依賴 4. 配置springdoc 5. 清理項目 6. 啟動項目 示例代…

C++默認構造函數、普通構造函數、拷貝構造、移動構造、委托構造及析構函數深度解析

目錄 一、默認構造函數&#xff08;Default Constructor&#xff09;二、普通構造函數&#xff08;General Constructor&#xff09;三、拷貝構造函數&#xff08;Copy Constructor&#xff09;四、移動構造函數&#xff08;Move Constructor&#xff0c;C11&#xff09;五、委…

JVM 深度解析

一、JVM 概述 1.1 什么是 JVM&#xff1f; JVM&#xff08;Java Virtual Machine&#xff0c;Java 虛擬機&#xff09;是 Java 程序運行的核心引擎。它像一個“翻譯官”&#xff0c;將 Java 字節碼轉換為機器能理解的指令&#xff0c;并管理程序運行時的內存、線程等資源。 …

OpenCV CUDA 模塊圖像過濾-----創建一個計算圖像導數的濾波器函數createDerivFilter()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 cv::cuda::createDerivFilter 是 OpenCV CUDA 模塊中的一個工廠函數&#xff0c;用于創建一個計算圖像導數的濾波器。這個濾波器可以用來計算圖像…

Spring Boot 接口開發實戰指南

Spring Boot 接口開發實戰指南 一、基礎接口開發步驟 1.1 添加必要依賴 <!-- pom.xml --> <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></depen…

題目 3325: 藍橋杯2025年第十六屆省賽真題-2025 圖形

題目 3325: 藍橋杯2025年第十六屆省賽真題-2025 圖形 時間限制: 2s 內存限制: 192MB 提交: 494 解決: 206 題目描述 小藍要畫一個 2025 圖形。圖形的形狀為一個 h w 的矩形&#xff0c;其中 h 表示圖形的高&#xff0c;w 表示圖形的寬。當 h 5,w 10 時&#xff0c;圖形如下所…

UML 時序圖 使用案例

UML 時序圖 UML 時序圖 (Sequence Diagram)時序圖的主要元素消息類型詳解時序圖示例時序圖繪制步驟時序圖的應用場景 UML 時序圖 (Sequence Diagram) 時序圖是UML(統一建模語言)中用于展示對象之間交互行為的動態視圖&#xff0c;它特別強調消息的時間順序。 時序圖的主要元素…

PPT連同備注頁(演講者模式)一塊轉為PDF

首先&#xff0c;進入創建PDF/XPS&#xff1a; 然后進入選項&#xff1a; 發布選項-發布內容里選備注頁&#xff1a; 導出的原始結果是這樣的&#xff1a; 這個時候裁剪一下&#xff0c;范圍為所有頁面&#xff1a; 最終結果&#xff1a; 如果導出不選“備注頁”而是只勾選“包…

AI時代新詞-多模態(Multimodal)

一、什么是多模態&#xff08;Multimodal&#xff09;&#xff1f; 多模態&#xff08;Multimodal&#xff09;是指在人工智能中&#xff0c;融合多種不同類型的信息&#xff08;如文本、圖像、語音、視頻等&#xff09;進行處理和分析的技術。與傳統的單一模態&#xff08;例…

【圖像大模型】Stable Diffusion XL:下一代文本到圖像生成模型的技術突破與實踐指南

Stable Diffusion XL&#xff1a;下一代文本到圖像生成模型的技術突破與實踐指南 一、架構設計與技術演進1.1 核心架構革新1.2 關鍵技術突破1.2.1 雙文本編碼器融合1.2.2 動態擴散調度 二、系統架構解析2.1 完整生成流程2.2 性能指標對比 三、實戰部署指南3.1 環境配置3.2 基礎…

圖像分割技術的實現與比較分析

引言 圖像分割是計算機視覺領域中的一項基礎技術&#xff0c;其目標是將數字圖像劃分為多個圖像子區域&#xff08;像素的集合&#xff09;&#xff0c;以簡化圖像表示&#xff0c;便于后續分析和理解。在醫學影像、遙感圖像分析、自動駕駛、工業檢測等眾多領域&#xff0c;圖…

摩爾線程S4000國產信創計算卡性能實戰——Pytorch轉譯,多卡P2P通信與MUSA編程

簡介 MTT S4000 是基于摩爾線程曲院 GPU 架構打造的全功能元計算卡&#xff0c;為千億規模大語言模型的訓練、微調和推理進行了定制優化&#xff0c;結合先進的圖形渲染能力、視頻編解碼能力和超高清 8K HDR 顯示能力&#xff0c;助力人工智能、圖形渲染、多媒體、科學計算與物…

「從0到1」構建工業物聯網監控系統:ARM+Quarkus+Prometheus技術棧全記錄

在工業4.0浪潮中&#xff0c;邊緣計算正成為智能制造的核心基礎設施。ARM架構邊緣計算機憑借其低功耗、高能效比和模塊化設計優勢&#xff0c;正在重塑工業物聯網&#xff08;IIoT&#xff09;的監控體系。當Java的跨平臺能力與Prometheus的實時監控體系相結合&#xff0c;為工…