Pēc sešu mēnešu izstrādes uzņēmums Oracle laidis klajā Java SE 19 (Java Platform, Standard Edition 19), kā etalona īstenojumu izmantojot atvērtā projekta OpenJDK. Izņemot dažas novecojušas iespējas, Java SE 19 saglabā atpakaļsaderību ar iepriekšējiem Java platformas izlaidumiem — lielākā daļa iepriekš izstrādāto Java projektu bez izmaiņām darbosies, izmantojot jauno versiju. Uzstādīšanai gatavas Java SE 19 (JDK, JRE un Server JRE) komplektācijas ir sagatavotas Linux (x86_64, AArch64), Windows (x86_64) un macOS (x86_64, AArch64). Atvērtā projekta OpenJDK ietvaros izstrādātais Java 19 etalona īstenojums ir pilnībā atvērts GPLv2 licenci ar izņēmumiem GNU ClassPath, kas atļauj dinamisku saistīšanu ar komerciāliem produktiem.
Java SE 19 ir klasificēts kā izlaidums ar parasto atbalsta termiņu, atjauninājumi tiks izlaisti līdz nākamajam izlaidumam. Kā ilgtermiņa atbalsta (LTS) versija jātur Java SE 17, kurai atjauninājumi tiks izlaisti līdz 2029. gadam. Atgādinām, ka, sākot ar Java 10, projekts pārgāja uz jaunu izstrādes procesu, kas paredz īsāku jaunu izlaidumu izstrādes ciklu. Jaunā funkcionalitāte tagad tiek attīstīta vienā pastāvīgi atjaunotā master-īpašā, kurā tiek iekļautas jau sagatavotās izmaiņas un no kuras reizi sešos mēnešos tiek atzarotas stabilizācijas filiāles jauniem izlaidumiem.
No jaunumiem Java 19 var atzīmēt:
- Piedāvāta priekšlaicīga atbalsta iespēja ierakstu paraugiem (record pattern), paplašinot Java 16 ieviesto iespēju veikt sakritību ar paraugu, izmantojot ierakstu tipu šķiršanas līdzekļus. Piemēram: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
- Linux komplektācijās nodrošināta RISC-V arhitektūras atbalsts.
- Pievienots priekšlaicīgs FFM (Foreign Function & Memory) API atbalsts, kas ļauj organizēt Java programmu mijiedarbību ar ārējo kodu un datiem, izmantojot funkciju izsaukumus no ārējām bibliotēkām un piekļuvi atmiņai ārpus JVM.
- Pievienots virtuālo pavedienu atbalsts, kas ir vieglie pavedieni, ievērojami atvieglojot augstas veiktspējas daudzuzdevumu programmu izstrādi un apkopi.
- Tika ceturtā priekšizstrādne Vector API, kas nodrošina funkcijas vektoru aprēķiniem, kas tiek veikti, izmantojot x86_64 un AArch64 procesoru vektoru instrukcijas un ļauj vienlaicīgi piemērot operācijas vairākām vērtībām (SIMD). Atšķirībā no JIT kompilatora HotSpot piedāvātajām automātiskās vektorizācijas iespējām skalaru operācijām, jaunais API sniedz iespēju tieši kontrolēt vektorizāciju paralēlai datu apstrādei.
- Pievienota trešā eksperimentālā šablona atbilstības realizācija ‘switch’ izteiksmēs, ļaujot ‘case’ atzīmēs izmantot neprecīzas vērtības, bet gan elastīgus šablonus, kas aptver veselu vērtību sēriju, kuru dēļ agrāk bija jāizmanto smagnējas ‘if…else’ izteiksmju ķēdes. 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(); };
- Pievienots eksperimentāls API strukturētam paralēlismam, kas vienkāršo daudzkārtēju lietojumprogrammu izstrādi, apstrādājot vairākus uzdevumus, kas tiek izpildīti atsevišķos pavedienos, kā vienotu bloku.
Avots: opennet.lv
