Lëshimi i Java SE 18

Pas njĂ« periudhĂ« prej gjashtĂ« muajsh zhvillimi, kompania Oracle publikoi platformĂ«n Java SE 18 (Java Platform, Standard Edition 18), e cila pĂ«rdor projektin e hapur OpenJDK si realizimin referues. PĂ«rveç eliminimit tĂ« disa karakteristikave tĂ« vjetruara, Java SE 18 ruan kompatibilitetin prapa me versionet e kaluara tĂ« platformĂ«s Java — shumica e projekteve Java tĂ« shkruara mĂ« parĂ« do tĂ« funksionojnĂ« pa ndryshime kur ekzekutohen nĂ« versionin e ri. NdĂ«rsa ndĂ«rtimet e gatshme pĂ«r instalim tĂ« Java SE 18 (JDK, JRE dhe Server JRE) janĂ« pĂ«rgatitur pĂ«r Linux (x86_64, AArch64), Windows (x86_64) dhe macOS (x86_64, AArch64). Realizimi referues i Java 18, 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 18 është klasifikuar si një lëshim me një periudhë të zakonshme mbështetjeje, përditësimet e të cilave do të lëshohen deri në lëshimin e ardhshëm. Si një degë me periudhë të gjatë mbështetjeje (LTS), duhet të përdoret Java SE 17, përditësimet për të cilën 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, i cili parashikon një cikël më të shkurtër të formimit të lëshimeve të reja. Funksionaliteti i ri tani zhvillohet në një degë master të përhershme, në të cilën përfshihen ndryshime të gatshme dhe nga e cila ndahen degë për stabilizimin e lëshimeve të reja çdo gjashtë muaj.

Nga risitë e Java 18 mund të përmendën:

  • TĂ« dhĂ«nat tekstuale tani pĂ«rdorin kodimin UTF-8 si parazgjedhje. Java API-tĂ« qĂ« pĂ«rpunojnĂ« tĂ« dhĂ«na tekstuale nĂ« pĂ«rputhje me kodimin e karaktereve, tani do tĂ« pĂ«rdorin UTF-8 si parazgjedhje nĂ« tĂ« gjitha platformat, pavarĂ«sisht nga konfigurimet e sistemit dhe zona e vendosjes. PĂ«r tĂ« rikthyer sjelljen e vjetĂ«r, nĂ« tĂ« cilĂ«n kodimi zgjidhej duke u mbĂ«shtetur nĂ« zonĂ«n e vendosjes tĂ« sistemit, mund tĂ« pĂ«rdorni parametrin “-Dfile.encoding=COMPAT.”
  • Pako pĂ«rmban paketĂ«n com.sun.net.httpserver, e cila pĂ«rfshin utilitarin jwebserver dhe njĂ« API bibliotekash me realizimin e njĂ« serveri http tĂ« thjeshtĂ« pĂ«r dorĂ«zimin e pĂ«rmbajtjes statike (pĂ«rpunuesit CGI dhe servlet-like nuk mbĂ«shteten). Serveri http i integruar nuk Ă«shtĂ« optimizuar pĂ«r ngarkesa pune dhe nuk mbĂ«shtet menaxhimin e qasjes dhe autentifikimin, pasi Ă«shtĂ« kryesisht i orientuar pĂ«r pĂ«rdorim gjatĂ« procesit tĂ« zhvillimit pĂ«r tĂ« krijuar prototipa, pĂ«r debugging dhe testimin e projekteve.
  • NĂ« JavaDoc Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r etiketĂ«n "@snippet" pĂ«r tĂ« inkorporuar shembuj funksionalĂ« dhe fragmente kodi nĂ« dokumentacionin e API, tĂ« cilĂ«ve mund t'u aplikohen mjete pĂ«r verifikimin e saktĂ«sisĂ«, pastrimin e sintaksĂ«s dhe integrimin me IDE.
  • ËshtĂ« ripĂ«rpunuar realizimi i API java.lang.reflect (Core Reflection), i cili Ă«shtĂ« i destinuar pĂ«r tĂ« marrĂ« informacione rreth metodave, fushave dhe konstruktorĂ«ve tĂ« klasave, si dhe aksesin nĂ« strukturĂ«n e brendshme tĂ« klasave. API java.lang.reflect vetĂ« ka mbetur i paprekur, por tani Ă«shtĂ« implementuar pĂ«rmes pĂ«rdorimit tĂ« deskriptorĂ«ve tĂ« metodave (method handles), tĂ« ofruara nga moduli java.lang.invoke, nĂ« vend tĂ« aplikimit tĂ« gjeneratorĂ«ve tĂ« kodit tĂ« bytes. Ky ndryshim ka lejuar unifikimin e implementimeve java.lang.reflect dhe java.lang.invoke, dhe ka thjeshtuar mbajtjen e tyre.
  • ËshtĂ« propozuar njĂ« e tretĂ« paraprake pĂ«r realizimin e API Vector, qĂ« ofron funksione pĂ«r llogaritjet vektoriale, tĂ« cilat ekzekutohen duke pĂ«rdorur instrukcione vektoriale tĂ« procesorĂ«ve x86_64 dhe AArch64 dhe lejojnĂ« aplikimin e operacioneve menjĂ«herĂ« nĂ« disa vlera (SIMD). Ndryshe nga mundĂ«sitĂ« e ofruara nĂ« JIT-kompiluesin HotSpot pĂ«r avtokompozimin e operacioneve skalar, API i ri ofron mundĂ«sinĂ« pĂ«r tĂ« menaxhuar qartĂ« vektorizimin pĂ«r pĂ«rpunimin paralel tĂ« tĂ« dhĂ«nave.
  • ËshtĂ« shtuar njĂ« ndĂ«rfaqe SPI (ndĂ«rfaqe e ofruesve tĂ« shĂ«rbimeve) pĂ«r zgjidhjen e emrave tĂ« hosteve dhe IP-adresat, e cila lejon angazhimin e rezolutorĂ«ve alternativĂ« nĂ« java.net.InetAddress, tĂ« cilĂ«t nuk janĂ« lidhur me pĂ«rpunuesit e ofruar nga sistemi operativ.
  • TĂ« ofruar njĂ« realizim tĂ« dytĂ« tĂ« pĂ«rparuar tĂ« API-sĂ« Foreign Function & Memory, me anĂ« tĂ« cilit aplikacionet mund tĂ« ndĂ«rveprojnĂ« me kodin dhe tĂ« dhĂ«nat qĂ« ndodhen pĂ«rtej Java runtime. API i ri lejon thirrjen efikase tĂ« funksioneve qĂ« ekzekutohen jo nĂ« JVM dhe qasjen nĂ« memorje, qĂ« nuk menaxhohet nga JVM. PĂ«r shembull, Ă«shtĂ« e mundur tĂ« thirren funksione nga biblioteka tĂ« jashtme tĂ« ndarĂ« dhe tĂ« aksesohen tĂ« dhĂ«nat e procesit pa pĂ«rdorur JNI.
  • E shtuar njĂ« realizim tĂ« dytĂ« eksperimental tĂ« pĂ«rshtatjes me shabllone nĂ« shprehjet «switch», e cila lejon pĂ«rdorimin e shablloneve fleksibĂ«l nĂ« etiketat «case» qĂ« mbulojnĂ« njĂ« seri vlerash, pĂ«r tĂ« cilat mĂ« parĂ« duheshin pĂ«rdorur njĂ« varg 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(); };
  • Kjo e mekanizĂ«m i finalizimit Ă«shtĂ« shpallur i vjetruar dhe do tĂ« çaktivizohet nĂ« njĂ« nga lĂ«shimet e ardhshme, si dhe metodat e lidhura me tĂ«, si Object.finalize(), Enum.finalize(), Runtime.runFinalization() dhe System.runFinalization().
  • NĂ« mbledhĂ«sit e plehrave ZGC (Z Garbage Collector), SerialGC dhe ParallelGC Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r deduplication e vargjeve.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster