Java SE 19-release

Na zes maanden ontwikkeling heeft Oracle Java SE 19 (Java Platform, Standard Edition 19) uitgebracht, dat het OpenJDK open source-project als referentie-implementatie gebruikt. Met uitzondering van de verwijdering van enkele verouderde functies, behoudt Java SE 19 achterwaartse compatibiliteit met eerdere releases van het Java-platform - de meeste eerder geschreven Java-projecten werken nog steeds zonder aanpassingen wanneer ze onder de nieuwe versie worden uitgevoerd. Installeerbare builds van Java SE 19 (JDK, JRE en Server JRE) zijn voorbereid voor Linux (x86_64, AArch64), Windows (x86_64) en macOS (x86_64, AArch64). De Java 19-referentie-implementatie, ontwikkeld door het OpenJDK-project, is volledig open onder de GPLv2-licentie met GNU ClassPath-uitzonderingen om dynamische koppelingen met commerciële producten mogelijk te maken.

Java SE 19 is gecategoriseerd als een reguliere ondersteuningsrelease, met updates die vóór de volgende release worden uitgebracht. De tak voor ondersteuning op lange termijn (LTS) zou Java SE 17 moeten zijn, die tot 2029 updates zal ontvangen. Bedenk dat het project vanaf de release van Java 10 is overgeschakeld naar een nieuw ontwikkelingsproces, wat een kortere cyclus impliceert voor de vorming van nieuwe releases. Er wordt nu nieuwe functionaliteit ontwikkeld in één constant bijgewerkte master-branch, die reeds voltooide wijzigingen bevat en van waaruit branches elke zes maanden worden vertakt om nieuwe releases te stabiliseren.

Nieuwe functies in Java 19 zijn onder andere:

  • Voorlopige ondersteuning voor recordpatronen is voorgesteld, waardoor de Java 16-patroonvergelijkingsmogelijkheid wordt uitgebreid om de waarden van klassen van het type record te ontleden. Bijvoorbeeld: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • Linux-builds bieden ondersteuning voor de RISC-V-architectuur.
  • Voorlopige ondersteuning toegevoegd voor de FFM (Foreign Function & Memory) API, waarmee u de interactie van Java-programma's met externe code en gegevens kunt organiseren door functies van externe bibliotheken aan te roepen en toegang te krijgen tot geheugen buiten de JVM.
  • Ondersteuning toegevoegd voor virtuele threads, dit zijn lichtgewicht threads die het schrijven en onderhouden van krachtige multi-threaded applicaties aanzienlijk vereenvoudigen.
  • De vierde voorlopige implementatie van de Vector API wordt voorgesteld, die functies biedt voor vectorberekeningen die worden uitgevoerd met behulp van de vectorinstructies van de x86_64- en AArch64-processors en waarmee u gelijktijdig bewerkingen kunt toepassen op meerdere waarden tegelijk (SIMD). In tegenstelling tot de mogelijkheden die de HotSpot JIT-compiler biedt voor autovectorisatie van scalaire bewerkingen, maakt de nieuwe API het mogelijk om vectorisatie expliciet te besturen voor parallelle gegevensverwerking.
  • Er is een derde experimentele implementatie van patroonvergelijking in switch-expressies toegevoegd, die het gebruik van flexibele sjablonen mogelijk maakt in case-labels die een reeks waarden tegelijk dekken, waarvoor voorheen omslachtige ketens van if...else-statements werden gebruikt. Voorwerp o = 123L; String geformatteerd = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("dubbel %f", d); case String s -> String.format("String %s", s); standaard -> o.toString(); };
  • Er is een experimentele Structured Parallelism API toegevoegd die het gemakkelijker maakt om multi-threaded applicaties te ontwikkelen door meerdere taken die op verschillende threads draaien als een enkele eenheid te behandelen.

Bron: opennet.ru

Voeg een reactie