Pas pas gjasht muajsh zhvillimi, kompania Oracle publikoi platformĂ«n Java SE 19 (Java Platform, Standard Edition 19), pĂ«r realizimin e sĂ« cilĂ«s pĂ«rdoret projekti i hapur OpenJDK. PĂ«rveç heqjes sĂ« disa funksionaliteteve tĂ« vjetra, Java SE 19 ruan pĂ«rputhshmĂ«rinĂ« prapa me versionet e kaluara 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Ă«rtime tĂ« gatshme pĂ«r instalim pĂ«r 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 i rekomanduar i Java 19, i zhvilluar nĂ« kuadĂ«r tĂ« projektit OpenJDK, Ă«shtĂ« plotĂ«sisht i hapur nĂ«n licencĂ«n GPLv2 me pĂ«rjashtime tĂ« GNU ClassPath, qĂ« lejojnĂ« lidhjen dinamike me produkte komerciale.
Java SE 19 është klasifikuar si një version me mbështetje të zakonshme, për të cilin përditësimet do të lëshohen deri në lansimin e ardhshëm. Si degë me mbështetje afatgjatë (LTS) duhet të përdoret Java SE 17, përditësimet e të cilës do të lëshohen deri në vitin 2029. Kujtojmë se, që nga lëshimi i Java 10, projekti kaloi në një proces të ri zhvillimi, që nënkupton një cikël më të shkurtër për formimin e lëshimeve të reja. funksionaliteti i ri tani zhvillohet në një degë master që përditësohet vazhdimisht, në të cilin përfshihen ndryshime të gatshme dhe nga e cila ndahen degë për stabilizimin e lëshimeve të reja çdo gjashtë muaj.
Nga novitetet e Java 19 mund të përmenden:
- ĂshtĂ« propozuar mbĂ«shtetje preliminare pĂ«r shabllonet e regjistrave (record pattern), qĂ« zgjeron mundĂ«sinĂ« e futur nĂ« Java 16 pĂ«r pĂ«rputhshmĂ«rinĂ« me modelet pĂ«rmes mjeteve 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Ă« shtuar mbĂ«shtetje preliminare pĂ«r API FFM (Foreign Function & Memory), qĂ« lejon organizimin e bashkĂ«punimit tĂ« programeve Java me kodin dhe tĂ« dhĂ«nat e jashtme pĂ«rmes thirrjes sĂ« funksioneve nga biblioteka tĂ« jashtme dhe qasjes nĂ« kujtesĂ«n jashtĂ« JVM.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r rrjedhat virtuale, qĂ« pĂ«rfaqĂ«sojnĂ« rrjedha tĂ« lehta, duke e bĂ«rĂ« shumĂ« mĂ« tĂ« lehtĂ« shkruan dhe mbajtur aplikacione shumĂ«thjeshtore me performancĂ« tĂ« lartĂ«.
- Për versionin e katërt të API Vector është ofruar një implementim paraprak, që ofron funksione për llogaritjet vektoriale, të cilat kryhen nëpërmjet instruksioneve vektoriale të procesorëve x86_64 dhe AArch64, dhe lejon aplikimin e operacioneve njëherësh ndaj disa vlerave (SIMD). Ndryshe nga mundësitë e avtokompilimit të operacioneve skalarë që ofrohen nga JIT-kompilatori HotSpot, API i ri lejon menaxhimin e qartë të vektorizimit për përpunimin paralel të të dhënave.
- ĂshtĂ« shtuar njĂ« implementim eksperimental i tretĂ« i pĂ«rputhjes pĂ«r shabllon nĂ« shprehjet «switch», i cili lejon nĂ« etiketat «case» pĂ«rdorimin e shablloneve fleksibĂ«l, qĂ« pĂ«rfshijnĂ« njĂ« seri vlerash, pĂ«r tĂ« cilat mĂ« parĂ« duhej tĂ« pĂ«rdornin zinxhirĂ« tĂ« ngarkuar 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, duke thjeshtuar zhvillimin e aplikacioneve me shumë thread, duke trajtuar disa detyra të kryera në thread të ndryshme si një blok të vetëm.
Burimi: opennet.ru
