首頁 >Java >java教程 >Java 已經到來 有什麼新功能?

Java 已經到來 有什麼新功能?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-09-20 07:01:31829瀏覽

Java Has Arrived What

Java 23 已正式發布!這是一個非 LTS(長期支援)版本。儘管它是一個短暫的版本,但 Java 23 包含了令人興奮的改進、錯誤修復,並且還刪除了您可能需要注意的功能和選項。

讓我們深入了解新功能以及它如何基於 JDK 21 和 JDK 22 等早期版本的功能構建。

範圍值:基於 JDK 22 和 JDK 21 預覽版構建

JDK 23 中最令人期待的功能之一是 作用域值(預覽版)。此功能也在 JDK 22 和 JDK 21 中預覽,它簡化了方法在執行緒和子執行緒之間共用不可變資料的方式。在先前的 Java 版本中,處理執行緒本地資料可能很麻煩並且需要大量記憶體。範圍值透過提供更有效率、更低開銷的替代方案來改變這一點。

JDK 23 有什麼不同? ScopedValue.callWhere() 方法現在使用新的函數接口,這使得編譯器更容易推斷是否可能引發已檢查的異常。這也導致了 ScopedValue.getWhere() 方法的刪除,進一步簡化了 API。

這是我們在早期版本中看到的改進的延續,很高興看到範圍值逐漸成為永久功能。

結構化並發:第三次預覽

Java 的並發模型一直都很強大,但管理起來卻很棘手。輸入結構化並發(預覽版),它首次出現在 JDK 21 中,現在已經在 JDK 23 中達到第三個預覽版。這裡的想法是透過將在不同執行緒中運行的相關任務分組到一個執行緒中,使並發程式設計更加直觀。單一工作單元。這簡化了錯誤處理並提高了取消流程的可靠性。

在 JDK 23 中,結構化並發仍處於預覽狀態,但它繼續使並發程式碼更易於推理且不易出錯。如果您使用過 JDK 21 或 JDK 22 中的預覽版,您將會欣賞到此功能的成熟程度。現在,它可以更好地處理線程洩漏等常見並發問題,從而更輕鬆地編寫可靠的多線程程式碼。

靈活的建構子主體:自 JDK 22 以來不斷發展

另一個受歡迎的補充是靈活的建構子主體(預覽)。首次在 JDK 22 中預覽為“super() 之前的語句”,此功能允許開發人員在呼叫超類別建構函式之前編寫初始化程式碼。這個看似很小的變化可以使建構函數邏輯更加清晰,並防止在驗證或其他設定邏輯失敗時創建不必要的物件。

在 JDK 22 中,引入此功能是為了讓開發人員更好地控制建構函式邏輯,JDK 23 中的第二個預覽版繼續完善此功能。透過將初始化邏輯移到超類別呼叫之前,開發人員可以避免以前混亂的程式碼庫的混亂輔助靜態方法和中間建構函式。

隱性聲明的類:第三次很有魅力

對於那些教授 Java 或編寫快速腳本的人來說,隱式聲明的類別和實例方法 自從在 JDK 21 中引入以來已經改變了遊戲規則。此功能允許初學者編寫簡化的 Java 程序,而無需理解從一開始就具有複雜的語言功能。

在 JDK 23 中,此功能得到了一些額外的升級。現在,隱式聲明的類別可以自動導入三個用於簡單文字 I/O 的靜態方法,並且它們還將按需導入 java.base 模組的所有公共頂級類別和介面。這些增強功能有助於使新手的學習曲線更加平滑。

模組導入聲明:新預覽

JDK 23 中的新預覽功能之一是模組導入聲明。此功能可讓您使用單一語句匯入模組匯出的所有套件,從而簡化了模組化庫的重複使用。它對於初學者特別有用,因為他們不再需要記住套件在層次結構中的位置,並且它減少了多個按需類型導入聲明造成的混亂。

雖然這是 JDK 23 中的一個全新功能,但它在使 Java 的模組系統更易於訪問方面顯示出了巨大的希望,特別是對於那些剛接觸模組化編程的人來說。

Kommentare zur Markdown-Dokumentation: Eine neue Ära für Javadoc

Seien wir ehrlich – das Schreiben von JavaDoc mit HTML und den @-Tags kann mühsam sein. In JDK 23 ermöglicht die Funktion Markdown-Dokumentationskommentare (Vorschau) Entwicklern das Schreiben von API-Dokumentation mit Markdown, wodurch es einfacher wird, lesbare, gut formatierte Kommentare zu erstellen.

Obwohl dies eine neue Funktion in JDK 23 ist, hätte sie schon vor Jahren hinzugefügt werden sollen. Markdown ist in Entwicklergemeinschaften weit verbreitet und die Einführung in JavaDoc wird das Schreiben und Verwalten von Dokumentationen erheblich vereinfachen.

Z Garbage Collector (ZGC): Standardmäßig Generationsmodus

Wenn Sie mit dem Z Garbage Collector (ZGC) seit seiner Einführung in JDK 15 arbeiten, werden Sie erfreut sein zu erfahren, dass ZGC in JDK 23 jetzt standardmäßig auf generational eingestellt ist Modus (JEP 474). Dieser Schalter verbessert die Anwendungsleistung, indem er sich auf die häufige Sammlung kurzlebiger Objekte konzentriert. Obwohl nicht-generationelles ZGC in dieser Version veraltet ist, ist dies ein klares Zeichen dafür, dass der Generationsansatz die Zukunft der Garbage Collection in Java ist.

Wenn Sie JDK 22 oder früher verwenden, sollte der Wechsel zu JDK 23 ohne großen Aufwand Ihrerseits spürbare Leistungsverbesserungen bringen.

Vektor-API: Immer noch in der Entwicklung, aber leistungsfähiger

Die in JDK 16 eingeführte Vektor-API ermöglicht Entwicklern die Durchführung von Vektorberechnungen, die zur Laufzeit zu optimalen Vektoranweisungen kompiliert werden. Die API entwickelt sich weiter und in JDK 23 sehen wir den Achten Inkubator. Diese API befindet sich noch in der Entwicklung, was bedeutet, dass es sich noch nicht um eine finale Funktion handelt, aber sie nähert sich der Reife.

Für leistungskritische Anwendungen, insbesondere solche, die mit großen Datenmengen arbeiten, kann die Vector API enorme Beschleunigungen ermöglichen. Wenn Sie in früheren Inkubationen damit gearbeitet haben (wie JDK 22), werden Sie feststellen, dass es jetzt noch stabiler ist, aber immer noch darauf wartet, dass die letzten Teile zusammenpassen (wahrscheinlich im Zusammenhang mit Project Valhalla).

Stream Gatherers: Zweite Vorschau

JDK 22 führte Stream Gatherers (Vorschau) ein, eine Funktion, die der Stream-API Flexibilität verleiht, indem sie benutzerdefinierte Zwischenoperationen ermöglicht. In JDK 23 gibt es eine zweite Vorschau. Wenn Sie gerne Streams zur Datenverarbeitung verwenden, werden Sie die Fähigkeit dieser Funktion zu schätzen wissen, Datenpipelines auf eine Weise zu transformieren, die bisher nur schwer zu erreichen war.

Stream Gatherer erweitern die Leistung von Streams und ermöglichen Entwicklern die einfachere Handhabung komplexerer Szenarien, insbesondere bei der Arbeit mit unendlichen Streams oder benutzerdefinierten Transformationen.

Klassendatei-API: Zweite Vorschau

Wenn Sie Tools erstellen, die Java-Klassendateien bearbeiten, ist die Klassendatei-API (Vorschau) in JDK 23 genau das Richtige für Sie. Diese API wurde erstmals in JDK 22 eingeführt und bietet eine Standardmethode zum Parsen und Generieren von Klassendateien, ohne dass Bibliotheken von Drittanbietern wie ASM erforderlich sind. Die zweite Vorschau in JDK 23 verfeinert diese API und macht sie schlanker und einfacher zu verwenden.

Für Tool-Entwickler ist das eine große Sache. Kein mühsamer Aufwand mehr, Bibliotheken jedes Mal zu aktualisieren, wenn sich die JVM-Spezifikation ändert – Java verfügt jetzt über eine Erstanbieterlösung.

Fazit: Sollten Sie ein Upgrade durchführen?

Java 23 ist zwar keine LTS-Version, aber es steckt voller spannender Funktionen, die auf den Einführungen von JDK 21 und JDK 22 aufbauen. Von bereichsbezogenen Werten und strukturierter Parallelität bis hin zu einem besseren Garbage Collector und Verbesserungen an Streams und Konstruktoren treibt diese Version die Java-Entwicklung voran.

以上是Java 已經到來 有什麼新功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn