Java SE 18 Verëffentlechung

No sechs Méint Entwécklung huet Oracle d'Java SE 18 (Java Platform, Standard Edition 18) Plattform verëffentlecht, déi den OpenJDK Open Source Projet als Referenzimplementatioun benotzt. Mat Ausnam vun der Entfernung vun e puer deprecéierten Features, hält Java SE 18 Réckkompatibilitéit mat fréiere Verëffentlechungen vun der Java Plattform - déi meescht virdru geschriwwe Java Projete funktionnéieren nach ëmmer ouni Ännerung wann se ënner der neier Versioun lafen. Installéierbar Builds vu Java SE 18 (JDK, JRE a Server JRE) si virbereet fir Linux (x86_64, AArch64), Windows (x86_64) a macOS (x86_64, AArch64). Entwéckelt vum OpenJDK Projet, d'Java 18 Referenz Implementatioun ass voll Open Source ënner der GPLv2 Lizenz mat GNU ClassPath Ausnahmen fir dynamesch Verknëppung mat kommerziellen Produkter z'erméiglechen.

Java SE 18 ass als regulär Ënnerstëtzungsverëffentlechung kategoriséiert, mat Updates fir virun der nächster Verëffentlechung verëffentlecht ze ginn. De Long Term Support (LTS) Branche soll Java SE 17 sinn, déi Updates bis 2029 kréien. Erënneren, datt ugefaang mat der Verëffentlechung vun Java 10, de Projet op en neien Entwécklung Prozess gewiesselt, deen e méi kuerz Zyklus fir d'Bildung vun neie Verëffentlechungen implizéiert. Nei Funktionalitéit gëtt elo an enger stänneg aktualiséierter Master-Branche entwéckelt, déi scho fäerdeg Ännerunge integréiert an aus deenen d'Branchen all sechs Méint verzweigt ginn fir nei Verëffentlechungen ze stabiliséieren.

Nei Features am Java 18 enthalen:

  • D'Standardkodéierung ass UTF-8. Java APIen déi Textdaten op Basis vu Charakterkodéierung veraarbechten wäerten elo UTF-8 als Standard op all Plattformen benotzen, onofhängeg vu Systemastellungen a Locale-Astellungen. Fir op dat alt Verhalen zréckzekommen, wou d'Kodéierung op Basis vun der Systemlokal gewielt gëtt, kënnt Dir d'Optioun "-Dfile.encoding=COMPAT" benotzen.
  • De Package enthält de com.sun.net.httpserver Package, deen d'jwebserver Utility an d'Bibliothéik API mat der Implementatioun vun engem einfachen http Server enthält fir statesch Inhalt ze servéieren (CGI a servletähnlech Handler ginn net ënnerstëtzt). Den agebaute HTTP-Server ass net fir Aarbechtslaascht optimiséiert an ënnerstëtzt keng Zougangskontroll an Authentifikatioun, well et haaptsächlech op d'Benotzung am Entwécklungsprozess fir Prototyping, Debugging an Testprojeten zielt.
  • JavaDoc bitt Ënnerstëtzung fir den "@snippet" Tag fir Aarbechtsbeispiller a Code Snippets an API Dokumentatioun z'integréieren, wou Dir Validatiounsinstrumenter, Syntax Highlight an IDE Integratioun benotze kënnt.
  • D'Ëmsetzung vun der java.lang.reflect API (Core Reflection), entwéckelt fir Informatiounen iwwer Methoden, Felder a Klassekonstruktoren ze kréien, souwéi Zougang zu der interner Struktur vu Klassen, gouf nei designt. D'java.lang.reflect API selwer bleift onverännert, awer gëtt elo implementéiert mat Methodhandtaken, déi vum java.lang.invoke Modul geliwwert ginn, anstatt Bytecode Generatoren ze benotzen. D'Ännerung huet eis erlaabt d'Implementatioune vu java.lang.reflect an java.lang.invoke ze vereenegen an hir Ënnerhalt ze vereinfachen.
  • Eng drëtt Virschau vun der Vector API gouf proposéiert, déi Funktiounen fir Vecteure Berechnungen ubitt, déi mat Vektorinstruktiounen op x86_64 an AArch64 Prozessoren ausgefouert ginn an erlaben Operatiounen gläichzäiteg op verschidde Wäerter (SIMD) applizéiert ze ginn. Am Géigesaz zu de Fäegkeeten, déi am HotSpot JIT Compiler zur Auto-Vektoriséierung vu scalar Operatiounen zur Verfügung gestallt ginn, mécht déi nei API et méiglech explizit Vektoriséierung fir parallel Datenveraarbechtung ze kontrolléieren.
  • SPI Interface dobäigesat (Service-Provider Interface) fir Hostnumm an IP Adressen ze léisen, wat Iech erlaabt alternativ Resolveren an java.net.InetAddress ze benotzen déi net mat Handler gebonne sinn, déi vum Betribssystem ugebuede ginn.
  • Eng zweet Virschau vun der Foreign Function & Memory API gëtt zur Verfügung gestallt, et erlaabt Uwendungen mat Code an Daten ausserhalb der Java Runtime ze interagéieren. Déi nei API erlaabt Iech effizient Net-JVM Funktiounen ze ruffen an Zougang zu Net-JVM-verwalte Erënnerung. Zum Beispill kënnt Dir Funktiounen aus externen gemeinsame Bibliothéiken ruffen an Zougang zu Prozessdaten ouni JNI benotzen.
  • Eng zweet experimentell Implementatioun vu Mustermatching an "Schalter" Ausdréck gouf bäigefüügt, wat d'Benotzung vu flexibele Musteren an "Fall" Etiketten erlaabt anstatt exakt Wäerter, déi eng Serie vu Wäerter op eemol ofdecken, fir déi virdru gebraucht gouf ëmständlech Ketten vun "wann ... soss" Ausdréck. Objekt o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("lang %d", l); case Double d -> String.format("duebel %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • D'Finaliséierungsmechanismus a seng verbonne Methoden wéi Object.finalize (), Enum.finalize (), Runtime.runFinalization () an System.runFinalization () goufen ofgeschaaft a ginn an enger zukünfteg Verëffentlechung deaktivéiert.
  • D'ZGC (Z Garbage Collector), SerialGC, a ParallelGC Müllsammler ënnerstëtzen d'Rei Deduplication.

Source: opennet.ru

Setzt e Commentaire