Release van Java SE 19

Na zes maanden ontwikkeling heeft Oracle het Java SE 19-platform (Java Platform, Standard Edition 19) uitgebracht, waarbij het open-source project OpenJDK als referentie-implementatie wordt gebruikt. Behalve de verwijdering van enkele verouderde mogelijkheden, behoudt Java SE 19 de achterwaartse compatibiliteit met eerdere versies van het Java-platform - de meeste eerder geschreven Java-projecten zullen zonder wijzigingen functioneren op de nieuwe versie. Klaar-om-te-installeren builds van Java SE 19 (JDK, JRE en Server JRE) zijn beschikbaar voor Linux (x86_64, AArch64), Windows (x86_64) en macOS (x86_64, AArch64). De referentie-implementatie van Java 19, ontwikkeld binnen het OpenJDK-project, is volledig open onder de GPLv2-licentie met uitzonderingen van GNU ClassPath, die dynamische koppeling met commerciële producten toestaan.

Java SE 19 valt onder de categorie releases met een normale ondersteuningsperiode, waarvoor updates worden uitgebracht tot de volgende release. Voor een versie met lange termijn ondersteuning (LTS) moet Java SE 17 worden gebruikt, waarvoor updates tot 2029 zullen worden uitgebracht. Ter herinnering, vanaf release Java 10 is het project overgestapt op een nieuw ontwikkelingsproces, dat een kortere cyclus voor het vormen van nieuwe releases met zich meebrengt. Nieuwe functionaliteit wordt nu ontwikkeld in één voortdurend bijgewerkte master-tak, waar al gereed zijnde wijzigingen aan worden toegevoegd en van waaruit eens in de zes maanden takken voor stabilisatie van nieuwe releases worden gemaakt.

Bij de nieuwe functies van Java 19 kunnen we het volgende opmerken:

  • Voorlopige ondersteuning voor recordpatronen (record pattern) is voorgesteld, die de in Java 16 geïntroduceerde mogelijkheid van patroonmatching voor record-klasse waarden uitbreidt. Bijvoorbeeld: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • In de builds voor Linux is ondersteuning voor de RISC-V-architectuur toegevoegd.
  • Voorlopige ondersteuning voor de FFM API (Foreign Function & Memory) is toegevoegd, waarmee Java-programma's kunnen communiceren met externe code en gegevens door functies uit externe bibliotheken aan te roepen en toegang te krijgen tot geheugen buiten de JVM.
  • Ondersteuning voor virtuele threads is toegevoegd, die lichte threads vertegenwoordigen en het schrijven en onderhouden van hoogpresterende multi-threaded applicaties aanzienlijk vereenvoudigen.
  • De vierde voorlopige implementatie van de Vector API is voorgesteld, die functies biedt voor vectorbewerkingen die worden uitgevoerd met behulp van vectorinstructies van x86_64 en AArch64-processors en waarmee gelijktijdig meerdere waarden kunnen worden verwerkt (SIMD). In tegenstelling tot de mogelijkheden voor automatische vectorisatie van schalar bewerkingen in de JIT-compiler van HotSpot, biedt de nieuwe API de mogelijkheid om expliciet de vectorisatie te beheren voor parallelle gegevensverwerking.
  • Een derde experimentele implementatie van pattern matching in 'switch'-expressies is toegevoegd, waardoor flexibele patronen in 'case'-labels kunnen worden gebruikt die een reeks waarden dekken, waarvoor voorheen omvangrijke 'if...else'-expressies moesten worden gebruikt. Object o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Een experimentele API voor gestructureerde parallelisme is toegevoegd, wat de ontwikkeling van multithreaded applicaties vereenvoudigt door meerdere taken die in verschillende threads worden uitgevoerd, als één blok te behandelen.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster