JavaSE 功能

JavaSE(JDK)中各版本新功能的詳細介紹

JavaSE 功能

JDK 23 功能:JEP 474 ZGC 預設將改為分代模式

JEP 474: ZGC: Generational Mode by Default

前言 ZGC 全名是 Z Garbage Collector,它是 Java 虛擬機器中一種新型的垃圾回收器,目的是為了實現低延遲和高擴展的垃圾收集器。首先在 JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental) 中於 JDK 11 時以實驗性質的方式導入,之後在 JDK 13(JEP 351)和 JDK 14(JEP 364、JEP 365)中陸續有新功能加入,並且在 JDK 15(JEP 377)時正式成為 …

JDK 23 功能:JEP 474 ZGC 預設將改為分代模式 閱讀全文 Read more...

JavaSE 功能

JDK 24 的首項公開功能 JEP 472 為限制使用 JNI 做準備

JDK 24 with JEP 472 page

JDK 24 現況 JDK 23(站內介紹)即將於今年 9 月份發布,緊接著後續的 JDK 24 開發工作也已如火如荼地展開,並預計於 2025 年 3 月發布。JDK 24 屬於非長期支援(LTS)的版本之一,這意味著它與 JDK 23 一樣,將只會獲得 Oracle 六個月的 Premier 支援。 可以預期的是,許多已包含在 JDK 23 中的預覽功能,都可望被納入 JDK 24 之中,例如像是: 除了上述所列的預覽功能之外,JDK 24 第一個出爐的新功能是 JEP 472 Prepar …

JDK 24 的首項公開功能 JEP 472 為限制使用 JNI 做準備 閱讀全文 Read more...

JavaSE 功能

JDK 23 功能預覽:JEP 455 基礎型別的模式匹配

JEP 455: Primitive Types in Patterns, instanceof, and switch

在 Java 的演進過程中,模式匹配一直是項重要的特性,但在處理基礎型別(primitive types)時卻存在許多限制。JDK 23 中的 JEP 455 為 Java 帶來了基礎型別模式匹配(pattern matching)的支援,讓開發人員能夠更優雅地處理型別轉換和檢查。 它不僅擴展了 instanceof 運算子的功能,也增強了 switch 的能力去處理所有基礎型別。這些改進大幅提升了 Java 程式碼的表達能力和安全性,同時也減少了冗長且容易出錯的程式碼。 前言 在傳統的 Jav …

JDK 23 功能預覽:JEP 455 基礎型別的模式匹配 閱讀全文 Read more...

JavaSE 功能

JDK 23 功能預覽:JEP 480 結構化並行

JEP 480: Structured Concurrency

在現代軟體開發中,並行程式設計一直是項既重要又棘手的議題。隨著虛擬執行緒的引入,Java 平台在處理大量多執行緒任務時變得更加強大。然而,管理這些執行緒的生命週期和錯誤處理仍然是一項艱難的挑戰。 Java 平台透過 JDK 23 的 JEP 480 提出了結構化並行(Structured Concurrency),試圖為這個問題提供優雅的解決方案。新的程式設計模型讓開發者能夠以更直觀、更可靠的方式來組織和管理並行任務,特別適合需要處理多個 I/O 操作的應用程式。 前言 我們通常會將任務拆分成多 …

JDK 23 功能預覽:JEP 480 結構化並行 閱讀全文 Read more...

JavaSE 功能

JDK 23 功能預覽:JEP 482 彈性建構式主體設計

JEP 482_Flexible Constructor Bodies

Java 語言的演進一直在追求更好的程式設計體驗,而 JDK 23 中的 JEP 482 提出的彈性建構式主體(Flexible Constructor Bodies)功能,為開發者帶來了建構式設計上的重大突破。這項功能允許在明確的建構式(不論是父類別建構式或本身的其他建構式)調用之前加入程式語句(除了讀取正在建構中的實例變數之外),讓程式設計更加靈活且直覺。 這項改進特別著重於提升類別在方法被覆寫時的可靠性。透過允許在調用父類別建構函式之前初始化衍生類別的成員,確保衍生類別的狀態在父類別建構式 …

JDK 23 功能預覽:JEP 482 彈性建構式主體設計 閱讀全文 Read more...

JavaSE 功能

JDK 22 功能:JEP 456 未命名變數與模式是簡化程式碼的新利器

JEP 456_Unnamed Variables & Patterns

在 Java 的發展歷程中,程式碼的簡潔性、可讀性和維護性一直是開發者關注的重點。Java 21 的 JEP 443 引入了未命名變數和模式的概念,並在 JDK 22 的 JEP 456 中成為正式功能。它可以簡化模式匹配語法,使其更易於使用與理解,並提升開發效率。 本文將介紹如何使用底線字元 _ 去匹配不必要且可完全省略的變數和模式,以及如何在實際開發中運用這項特性來減少冗餘程式碼,使其能夠更明確地表達開發人員的意圖。 前言 在日常的開發中,我們有時需要宣告一些實際上不會用到的變數,無論是出於 …

JDK 22 功能:JEP 456 未命名變數與模式是簡化程式碼的新利器 閱讀全文 Read more...

JavaSE 功能

JDK 22 功能:JEP 423 G1 垃圾回收器的區域釘選

JEP 423: Region Pinning for G1

自 Java 於 1995 年面世以來,Java 虛擬機(JVM)的垃圾回收機制一直是眾所矚目的重要功能,也是效能優化的關鍵領域。本文將介紹 JEP 423 的 G1 垃圾回收器區域釘選(Region Pinning)技術,能大幅改善 G1 垃圾回收器在處理 Java Native Interface 臨界區域時的效能。 區域釘選技術的核心目標是減少 JNI 使用臨界區域時的延遲問題,以維持垃圾回收的效率。這項技術允許 G1 垃圾回收器在 JNI 臨界區域期間繼續進行垃圾回收,而不是完全禁用它, …

JDK 22 功能:JEP 423 G1 垃圾回收器的區域釘選 閱讀全文 Read more...

JavaSE 功能

Java SE 7 新功能與改進:try-with-resources 述句

介紹 try-with-resources 述句可以讓我們在 try 述句中宣告一到數項資源。當我們說某個物件是一項資源時,意味著該物件實作了 java.lang.AutoCloseable 或是它的子介面 java.lang.Closeable,並且當程式不再使用它們時,我們需要將其關閉。try 新增的述句確保每項資源在區段結束時都會被關閉。 早期我們都必須要自行處理資源的關閉,但現在我們可以藉助此一述句來簡化程式。下例會從檔案中讀取第一行,它使用 BufferedReader 物件來讀檔。B …

Java SE 7 新功能與改進:try-with-resources 述句 閱讀全文 Read more...

JavaSE 功能

Java SE 7 新功能與改進:switch 指令支援字串

在 Java SE 7 中,可以在 switch 述句中使用 String 物件: switch 述句會使用 String.equals 方法來比較每一個 case 標籤的字串物件,因此在 switch 述句中的字串比對是有大小寫分別的。 和一連串的 if-then-else 相比,在 switch 述句中使用字串會更有效率,並且容易閱讀。 …

Java SE 7 新功能與改進:switch 指令支援字串 閱讀全文 Read more...

JavaSE 功能

Java SE 7 新功能與改進:二進位數字表示法

在 Java SE 7 中,整數型態(byte、short、int 以及 long)可以用二進位數字系統來表示,它的前置詞是 0b 或 0B。下面列出幾個用法: 有的時候,數字用二進位法來表示,會比八或十六進位來得清楚和易讀。舉例來說: 原本在 Java 語言中可以使用整數數字的地方,都可以用二進位表示法: 你也可以用它來設計迷宮陣列,或是點陣圖形的表情符號,像是下面這個笑臉圖: …

Java SE 7 新功能與改進:二進位數字表示法 閱讀全文 Read more...

返回頂端