Java SE 19 vrystelling

Na ses maande se ontwikkeling het Oracle die Java SE 19 (Java Platform, Standard Edition 19) platform vrygestel, wat die OpenJDK oopbronprojek as 'n verwysingsimplementering gebruik. Met die uitsondering van die verwydering van sommige verouderde kenmerke, handhaaf Java SE 19 terugwaartse versoenbaarheid met vorige vrystellings van die Java-platform - die meeste voorheen geskrewe Java-projekte sal steeds sonder verandering werk wanneer dit onder die nuwe weergawe uitgevoer word. Gereed-vir-installeer-geboue van Java SE 19 (JDK, JRE en Server JRE) word voorberei vir Linux (x86_64, AArch64), Windows (x86_64) en macOS (x86_64, AArch64). Ontwikkel deur die OpenJDK-projek, is die Java 19-verwysingsimplementering volledig oopbron onder die GPLv2-lisensie met GNU ClassPath-uitsonderings om dinamiese koppeling met kommersiële produkte toe te laat.

Java SE 19 word gekategoriseer as 'n gereelde ondersteuningsvrystelling, met opdaterings wat voor die volgende vrystelling vrygestel moet word. Die langtermynondersteuningstak (LTS) behoort Java SE 17 te wees, wat opdaterings tot 2029 sal ontvang. Onthou dat die projek begin met die vrystelling van Java 10 oorgeskakel het na 'n nuwe ontwikkelingsproses, wat 'n korter siklus vir die vorming van nuwe vrystellings impliseer. Nuwe funksionaliteit word nou ontwikkel in een voortdurend bygewerkte meestertak, wat reeds voltooide veranderinge insluit en waaruit takke elke ses maande vertak word om nuwe vrystellings te stabiliseer.

Nuwe kenmerke in Java 19 sluit in:

  • Voorlopige ondersteuning vir rekordpatrone is voorgestel, wat die Java 16-patroonpassingsvermoë uitbrei om die waardes van klasse tipe rekord te ontleed. Byvoorbeeld: rekord Point(int x, int y) {} leemte drukSom(Object o) { if (o geval van Punt(int x, int y)) { System.out.println(x+y); } }
  • Linux-geboue bied ondersteuning vir die RISC-V-argitektuur.
  • Bygevoeg voorlopige ondersteuning vir die FFM (Foreign Function & Memory) API, wat jou toelaat om die interaksie van Java-programme met eksterne kode en data te organiseer deur die oproep van funksies van eksterne biblioteke en toegang tot geheue buite die JVM.
  • Bygevoeg ondersteuning vir virtuele drade, wat liggewig drade is wat skryf en instandhouding van hoëprestasie multi-draad toepassings aansienlik vergemaklik.
  • Die vierde voorlopige implementering van die Vector API word voorgestel, wat funksies verskaf vir vektorberekeninge wat uitgevoer word met behulp van die vektorinstruksies van die x86_64- en AArch64-verwerkers en u toelaat om gelyktydig bewerkings op verskeie waardes gelyktydig toe te pas (SIMD). Anders as die vermoëns wat in die HotSpot JIT-samesteller verskaf word vir outovektorisering van skalêre bedrywighede, maak die nuwe API dit moontlik om vektorisering vir parallelle dataverwerking eksplisiet te beheer.
  • 'n Derde eksperimentele implementering van patroonpassing in skakeluitdrukkings is bygevoeg, wat dit moontlik maak om buigsame sjablone te gebruik in gevaletikette wat 'n reeks waardes gelyktydig dek, waarvoor omslagtige kettings van if...else-stellings voorheen gebruik is. Voorwerp o = 123L; String formatted = switch (o) { case Heelgetal i -> String.format("int %d", i); kas Lang l -> String.format("lang %d", l); geval Dubbel d -> String.format("dubbel %f", d); case String s -> String.format("String %s", s); verstek -> o.toString(); };
  • 'n Eksperimentele Structured Parallelism API is bygevoeg wat dit makliker maak om multi-threaded toepassings te ontwikkel deur verskeie take wat op verskillende drade loop as 'n enkele eenheid te behandel.

Bron: opennet.ru

Voeg 'n opmerking