Eldono de Java SE 19

Post ses monatoj da evoluo, Oracle publikigis Java SE 19 (Java Platform, Standard Edition 19), kiu uzas la OpenJDK malfermfontecan projekton kiel sian referencan efektivigon. Escepte de la forigo de kelkaj malnoviĝintaj funkcioj, Java SE 19 konservas malantaŭan kongruon kun antaŭaj eldonoj de la Java platformo - la plej multaj antaŭe verkitaj Java-projektoj funkcios sen ŝanĝoj kiam ili funkcias sub la nova versio. Pretaj instalaĵoj de Java SE 19 (JDK, JRE kaj Server JRE) estas pretaj por Linukso (x86_64, AArch64), Vindozo (x86_64) kaj macOS (x86_64, AArch64). Disvolvita de la OpenJDK-projekto, la referenca efektivigo de Java 19 estas plene malfermfonta laŭ la permesilo GPLv2, kun GNU ClassPath-esceptoj permesantaj dinamikan ligon kun komercaj produktoj.

Java SE 19 estas klasifikita kiel ĝenerala subtena eldono kaj daŭre ricevos ĝisdatigojn ĝis la venonta eldono. La branĉo Long Term Support (LTS) devus esti Java SE 17, kiu daŭre ricevos ĝisdatigojn ĝis 2029. Ni memorigu vin, ke ekde la liberigo de Java 10, la projekto ŝanĝis al nova evoluprocezo, kio implicas pli mallongan ciklon por la formado de novaj eldonoj. Nova funkcieco nun estas evoluigita en unu konstante ĝisdatigita majstra branĉo, kiu inkluzivas pretajn ŝanĝojn kaj de kiuj branĉoj estas disbranĉigitaj ĉiujn ses monatojn por stabiligi novajn eldonojn.

Novaj funkcioj en Java 19 inkluzivas:

  • Antaŭa subteno por rekordaj ŝablonoj estis proponita, etendante la ŝablonon-kongruan funkcion enkondukitan en Java 16 per iloj por analizi la valorojn de rekordaj klasoj. Ekzemple: registri Punkto(int x, int y) {} void printSum(Objekto o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); }}
  • Linukso-konstruaĵoj disponigas subtenon por la RISC-V-arkitekturo.
  • Aldonita prepara subteno por la API de FFM (Foreign Function & Memory), kiu ebligas al vi organizi la interagadon de Java-programoj kun ekstera kodo kaj datumoj vokante funkciojn de eksteraj bibliotekoj kaj alirante memoron ekster la JVM.
  • Aldonita subteno por virtualaj fadenoj, kiuj estas malpezaj fadenoj, kiuj multe simpligas la skribadon kaj prizorgadon de alt-efikecaj plurfadenaj aplikoj.
  • Kvara antaŭprezento de la Vektora API estis proponita, provizante funkciojn por vektoraj kalkuloj, kiuj estas ekzekutitaj per vektoraj instrukcioj sur x86_64 kaj AArch64-procesoroj kaj permesas operaciojn esti aplikataj samtempe al multoblaj valoroj (SIMD). Male al la kapabloj disponigitaj en la HotSpot JIT-kompililo por aŭto-vektorizado de skalaraj operacioj, la nova API ebligas eksplicite kontroli vektorigon por paralela datumtraktado.
  • Tria eksperimenta efektivigo de kongruo de ŝablonoj en "ŝanĝaj" esprimoj estis aldonita, permesante la uzon de flekseblaj ŝablonoj en "kazaj" etikedoj prefere ol precizaj valoroj, kovrante serion da valoroj samtempe, por kiuj antaŭe estis necese uzi maloportunaj ĉenoj de "se... alie" esprimoj. Objekto o = 123L; Ŝnuro formatita = switch (o) { case Entjero i -> String.format("int %d", i); case Long l -> String.format("longa %d", l); case Double d -> String.format("duobla %f", d); case String s -> String.format("String %s", s); defaŭlta -> o.toString(); };
  • Aldonis eksperimentan API por strukturita paraleleco, kiu simpligas la evoluon de plurfadenaj aplikoj traktante plurajn taskojn kurantajn en malsamaj fadenoj kiel ununuran blokon.

fonto: opennet.ru

Aldoni komenton