Pasik mĂ« shumĂ« se gjashtĂ« muaj zhvillimi, kompania Oracle lançou platformĂ«n Java SE 19 (Java Platform, Standard Edition 19), ku projekti i hapur OpenJDK shĂ«rben si njĂ« realizim standard. PĂ«rveç largimit tĂ« disa funksionaliteteve tĂ« vjetra, Java SE 19 ruan pĂ«rputhshmĂ«rinĂ« prapa me versionet e mĂ«parshme tĂ« platformĂ«s Java â shumica e projekteve Java tĂ« shkruara mĂ« parĂ« do tĂ« funksionojnĂ« pa ndryshime nĂ«n menaxhimin e versionit tĂ« ri. NdĂ«rtesat e gatshme pĂ«r tu instaluar tĂ« Java SE 19 (JDK, JRE dhe Server JRE) janĂ« pĂ«rgatitur pĂ«r Linux (x86_64, AArch64), Windows (x86_64) dhe macOS (x86_64, AArch64). Realizimi standard i Java 19, i zhvilluar nĂ« kuadĂ«r tĂ« projektit OpenJDK, Ă«shtĂ« plotĂ«sisht i hapur nĂ«n licencĂ«n GPLv2 me pĂ«rjashtime nga GNU ClassPath, qĂ« lejojnĂ« lidhjen dinamike me produkte komerciale.
Java SE 19 e kategorizuar si version me afat të zakonshëm mbështetje, përditësime për të cilin do të dalin deri në publikimin e versionit të ardhshëm. Si një degë e mbështetjes afatgjatë (LTS), duhet të përdoret Java SE 17, përditësimet për të cilin do të dalin deri në vitin 2029. Kujtojmë se që nga publikimi i Java 10, projekti ka kaluar në një proces të ri zhvillimi, që përfshin një cikël më të shkurtër për formimin e versioneve të reja. Funksionaliteti i ri tani zhvillohet në një degë master të përhershme që ndiqet nga rregullime të përgatitura dhe nga e cila cdo gjashtë muaj branch-e për stabilizimin e versioneve të reja krijohen.
Disa nga risitë në Java 19 përfshijnë:
- Këtu është propozuar mbështetje preliminare për modelet e regjistrave (record pattern), që zgjeron mundësinë e paraqitur në Java 16 për përputhjen me modele përmes mjetesh për analizimin e vlerave të klasave të tipit record. Për shembull: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
- Në ndërtimet për Linux është siguruar mbështetje për arkitekturën RISC-V.
- ĂshtĂ« e shtuar mbĂ«shtetje preliminare pĂ«r API FFM (Foreign Function & Memory), e cila lejon ndĂ«rveprimin e programeve Java me kodin dhe tĂ« dhĂ«nat e jashtme pĂ«rmes thirrjeve tĂ« funksioneve nga bibliotekat e jashtme dhe qasjen nĂ« memorien jashtĂ« JVM.
- ĂshtĂ« e shtuar mbĂ«shtetje pĂ«r thurjet virtuale, tĂ« cilat janĂ« tĂ« lehta dhe ndihmojnĂ« nĂ« shkruan dhe mirĂ«mbajtjen e aplikacioneve tĂ« shumta me performancĂ« tĂ« lartĂ«.
- Propozohet një realizim preliminar i katërt i API Vector, që ofron funksione për llogaritjet vektoriale, të cilat realizohen duke përdorur urdhrat vektorë të procesorëve x86_64 dhe AArch64, duke lejuar aplikimin e operacioneve për disa vlera njëherësh (SIMD). Ndryshe nga mundësitë e avtokodimit të operacioneve skalar në kompajlerin JIT HotSpot, API i ri ofron mundësinë për të menaxhuar qartë vektorizimin për përpunimin paralele të të dhënave.
- NjĂ« realizim eksperimental i tretĂ« i pĂ«rputhjes me model nĂ« shprehje «switch» Ă«shtĂ« shtuar, duke lejuar qĂ« nĂ« etiketat «case» tĂ« pĂ«rdoren jo vlera tĂ« sakta, por modele fleksibĂ«l qĂ« mbulojnĂ« menjĂ«herĂ« njĂ« seri vlerash, pĂ«r tĂ« cilat mĂ« parĂ« ishte e nevojshme tĂ« pĂ«rdoren zinxhirĂ« tĂ« gjatĂ« shprehjesh «ifâŠelse». 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(); };
- Një API eksperimental për paralelizmin e strukturuar është shtuar, i cili e bën më të thjeshtë zhvillimin e aplikacioneve të shumta përmes menaxhimit të detyrave të shumta që realizohen në rrjedha të ndryshme si një bllok i vetëm.
Burimi: opennet.ru
