Publikimi i Java SE 18

Pas pas gjashtĂ« muajsh zhvillimi, kompania Oracle lĂ«shoi platformĂ«n Java SE 18 (Java Platform, Standard Edition 18), e cila pĂ«rdor projektin e hapur OpenJDK si realizimin referues. PĂ«rveç heqjes sĂ« disa funksionaliteteve tĂ« vjetruara, Java SE 18 ruan pĂ«rputhshmĂ«rinĂ« mbrapa me versionet e mĂ«parshme tĂ« platformĂ«s Java – shumica e projekteve tĂ« shkruara mĂ« parĂ« nĂ« Java do tĂ« funksionojnĂ« pa modifikime kur ekzekutohen nĂ«n menaxhimin e kĂ«saj versioni tĂ« ri. NdĂ«rsa janĂ« pĂ«rgatitur ndĂ«rtimet e gatshme pĂ«r instalim tĂ« Java SE 18 (JDK, JRE dhe Server JRE) 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 sipas licencĂ«s GPLv2 me pĂ«rjashtime nga GNU ClassPath, qĂ« lejojnĂ« lidhjen dinamike me produkte komerciale.

Java SE 18 është klasifikuar si një lëshim me një periudhë mbështetjeje standarde, me përditësime që do të lëshohen deri në lëshimin e ardhshëm. Si një degë me periudhë të gjatë mbështetjeje (LTS), rekomandohet Java SE 17, me përditësime që 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ë parashikon 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ë rifreskohet vazhdimisht, në të cilën përfshihen ndryshimet e gatshme, dhe nga e cila çohen degë për stabilizimin e lëshimeve të reja çdo gjashtë muaj.

Disa nga risitë e Java 18 janë:

  • Si parazgjedhje, pĂ«rdoret kodimi UTF-8. Java API, qĂ« pĂ«rpunojnĂ« tĂ« dhĂ«na tekstuale me konsideratĂ« ndaj kodimit tĂ« karaktereve, tani do tĂ« pĂ«rdorin si parazgjedhje UTF-8 nĂ« tĂ« gjitha platformat, pa marrĂ« parasysh konfigurimet sistemike dhe lokalitetin e caktuar. PĂ«r tĂ« rikthyer sjelljen e vjetĂ«r, ku kodimi zgjidhej nĂ« pĂ«rputhje me lokalitetin e sistemit, mund tĂ« pĂ«rdoret parametri "-Dfile.encoding=COMPAT".
  • NĂ« pĂ«rmbajtje pĂ«rfshihet paketa com.sun.net.httpserver, e cila pĂ«rmban utilitarin jwebserver dhe API-nĂ« e bibliotekĂ«s me implementimin e njĂ« serveri http tĂ« thjeshtĂ« pĂ«r shĂ«rbimin e pĂ«rmbajtjes statike (nuk mbĂ«shteten pĂ«rpunuesit CGI dhe servlet). Serveri http i integruar nuk Ă«shtĂ« optimizuar pĂ«r ngarkesa pune dhe nuk mbĂ«shtet menaxhimin e aksesit dhe autentifikimin, pasi Ă«shtĂ« fokusuar kryesisht nĂ« pĂ«rdorim gjatĂ« zhvillimit pĂ«r tĂ« krijuar prototipa, pĂ«r debugging dhe pĂ«rshtatjen e projekteve.
  • JavaDoc implementon pĂ«rkrahjen pĂ«r tagun "@snippet" pĂ«r pĂ«rfshirjen e shembujve funksionalĂ« dhe fragmenteve tĂ« kodit nĂ« dokumentacionin e API-sĂ«, tĂ« cilĂ«ve mund t'u aplikohen mjete pĂ«r kontrollin e saktĂ«sisĂ«, theksimin e sintaksĂ«s dhe integrimin me IDE.
  • Realizimi i API-sĂ« java.lang.reflect (Core Reflection) Ă«shtĂ« riparĂ«, e cila Ă«shtĂ« e destinuar pĂ«r tĂ« marrĂ« informacione mbi metodat, fushat dhe konstruktoret e klasave, si dhe pĂ«r aksesin nĂ« strukturĂ«n e brendshme tĂ« klasave. API vetĂ« java.lang.reflect ka mbetur i pandryshuar, por tani Ă«shtĂ« implementuar pĂ«rmes pĂ«rdorimit tĂ« descriptorĂ«ve tĂ« metodĂ«s (method handles), tĂ« ofruar nga moduli java.lang.invoke, nĂ« vend tĂ« aplikimit tĂ« gjeneratorĂ«ve tĂ« kodit tĂ« bajtĂ«ve. Ky ndryshim ka lejuar unifikimin e implementimeve tĂ« java.lang.reflect dhe java.lang.invoke dhe ka thjeshtuar mbĂ«shtetje e tyre.
  • Sugjerohet njĂ« realizim i tretĂ« i projektit pĂ«r API-nĂ« Vector, i cili ofron funksione pĂ«r llogaritjet vektoriale, tĂ« cilat pĂ«rpunohen duke pĂ«rdorur instrukcione vektoriale tĂ« procesorĂ«ve x86_64 dhe AArch64 dhe lejojnĂ« aplikimin e operacioneve njĂ«kohĂ«sisht nĂ« disa vlera (SIMD). Ndryshe nga funksionalitetet qĂ« ofrohen nĂ« JIT-komilin e HotSpot pĂ«r vektorizimin e automatik tĂ« operacioneve skalar, API i ri lejon menaxhim tĂ« qartĂ« tĂ« vektorizimit pĂ«r pĂ«rpunimin paralel tĂ« tĂ« dhĂ«nave.
  • Shtohet interface SPI (service-provider interface) pĂ«r zgjidhjen e emrave tĂ« hosteve dhe IP-adresave, e cila lejon pĂ«rdorimin e zgjidhĂ«sve alternativĂ« nĂ« java.net.InetAddress, tĂ« cilat nuk janĂ« tĂ« lidhur me pĂ«rpunuesit qĂ« ofrohen nga sistemi operativ.
  • Sugjerohet njĂ« realizim i dytĂ« i projektit pĂ«r API-nĂ« Foreign Function & Memory, me anĂ« tĂ« sĂ« cilĂ«s aplikacionet mund tĂ« ndĂ«rveprojnĂ« me kodin dhe tĂ« dhĂ«nat qĂ« ndodhen jashtĂ« Java runtime. API i ri lejon thirrjen efektive tĂ« funksioneve qĂ« ekzekutohen jashtĂ« JVM dhe qasjen nĂ« kujtesĂ«n qĂ« nuk menaxhohet nga JVM. PĂ«r shembull, mund tĂ« thirren funksione nga biblioteka tĂ« ndara dhe tĂ« aksesohen tĂ« dhĂ«nat e procesit pa pĂ«rdorur JNI.
  • Shtimi i implementimit tĂ« dytĂ« eksperimental tĂ« pĂ«rputhjes mbi modelin nĂ« shprehjet «switch», i cili lejon nĂ« etiketat «case» pĂ«rdorimin e vlerave tĂ« lira, pĂ«rfshirĂ« njĂ« gamĂ« vlerash, pĂ«r tĂ« cilat mĂ« parĂ« duhej tĂ« pĂ«rdornim zinxhirĂ« tĂ« ndĂ«rlikuar 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(); };
  • Mekanizmi i finalizimit Ă«shtĂ« shpallur i vjetruar dhe do tĂ« çaktivizohet nĂ« njĂ« nga lĂ«shimet e ardhshme, sĂ« bashku me metodat pĂ«rkatĂ«se, si Object.finalize(), Enum.finalize(), Runtime.runFinalization() dhe System.runFinalization().
  • NĂ« mbledhĂ«sit e mbetjeve ZGC (Z Garbage Collector), SerialGC dhe ParallelGC Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r dedupifikimin e vargjeve.

Burimi: opennet.ru

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