Java SE 19 release

Efter sex månaders utveckling har Oracle släppt plattformen Java SE 19 (Java Platform, Standard Edition 19), som använder OpenJDK open source-projektet som referensimplementering. Med undantag för borttagningen av vissa föråldrade funktioner, bibehåller Java SE 19 bakåtkompatibilitet med tidigare versioner av Java-plattformen – de flesta tidigare skrivna Java-projekt kommer fortfarande att fungera utan ändringar när de körs under den nya versionen. Installationsfärdiga versioner av Java SE 19 (JDK, JRE och Server JRE) är förberedda för Linux (x86_64, AArch64), Windows (x86_64) och macOS (x86_64, AArch64). Utvecklad av OpenJDK-projektet är Java 19-referensimplementeringen helt öppen källkod under GPLv2-licensen med GNU ClassPath-undantag för att tillåta dynamisk länkning till kommersiella produkter.

Java SE 19 kategoriseras som en vanlig supportversion, med uppdateringar som ska släppas innan nästa release. Långtidsstödsgrenen (LTS) bör vara Java SE 17, som kommer att få uppdateringar fram till 2029. Kom ihåg att från och med lanseringen av Java 10 bytte projektet till en ny utvecklingsprocess, vilket innebär en kortare cykel för bildandet av nya utgåvor. Ny funktionalitet utvecklas nu i en ständigt uppdaterad mastergren, som innehåller redan genomförda ändringar och från vilken filialer förgrenas var sjätte månad för att stabilisera nya releaser.

Nya funktioner i Java 19 inkluderar:

  • Preliminärt stöd för postmönster har föreslagits, vilket utökar Java 16-mönstermatchningsförmågan för att analysera värdena för klasser av typpost. Till exempel: registrera Point(int x, int y) {} void printSum(Objekt o) { if (o instans av Point(int x, int y)) { System.out.println(x+y); } }
  • Linux-byggen ger stöd för RISC-V-arkitekturen.
  • Lade till preliminärt stöd för FFM (Foreign Function & Memory) API, som låter dig organisera interaktionen av Java-program med extern kod och data genom att anropa funktioner från externa bibliotek och komma åt minne utanför JVM.
  • Tillagt stöd för virtuella trådar, som är lätta trådar som avsevärt förenklar skrivning och underhåll av högpresterande flertrådiga applikationer.
  • Den fjärde preliminära implementeringen av Vector API föreslås, som tillhandahåller funktioner för vektorberäkningar som utförs med hjälp av vektorinstruktionerna för x86_64- och AArch64-processorerna och låter dig tillämpa operationer på flera värden samtidigt (SIMD). Till skillnad från funktionerna i HotSpot JIT-kompilatorn för autovektorisering av skalära operationer, gör det nya API:et det möjligt att explicit styra vektorisering för parallell databehandling.
  • En tredje experimentell implementering av mönstermatchning i switch-uttryck har lagts till, vilket gör det möjligt att använda flexibla mallar i falletiketter som täcker en serie värden på en gång, för vilka besvärliga kedjor av if...else-satser tidigare hade använts. Objekt o = 123L; Sträng formaterad = switch (o) { case Heltal i -> String.format("int %d", i); case Lång l -> String.format("lång %d", l); case Dubbel d -> String.format("dubbel %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Ett experimentellt Structured Parallelism API har lagts till som gör det lättare att utveckla flertrådade applikationer genom att behandla flera uppgifter som körs på olika trådar som en enda enhet.

Källa: opennet.ru

Lägg en kommentar