Versioni i ri i Java SE 18 është lëshuar tashmë dhe këto janë lajmet e tij

Pas gjashtë muajsh zhvillimi, Oracle lëshoi ​​lëshimin e versioni i ri i JavaSE 18 (Standard Edition), i cili përdor projektin OpenJDK me burim të hapur si një zbatim referimi.

Në këtë version të ri të Java SE 18 vjen me përjashtim të heqja e disa veçorive të vjetruara, ruan përputhshmërinë me versionet më të vjetra të platformës Java dhe shumica e projekteve Java të shkruara më parë do të vazhdojnë të funksionojnë të pandryshuara kur të ekzekutohen me versionin e ri.

Karakteristikat kryesore të reja të Java SE 18

Në këtë version të ri të Java SE 18, kodimi i parazgjedhur është UTF-8. Java API që përpunojnë të dhëna teksti të koduara me karaktere tani do të përdorë UTF-8 si parazgjedhje në të gjitha platformat, pavarësisht nga cilësimet e sistemit dhe cilësimet rajonale. Për të kthyer sjelljen e vjetër, ku kodimi zgjidhet duke marrë parasysh vendndodhjen e sistemit, mund të përdorni parametrin “-Dfile.encoding=COMPAT”.

Një tjetër nga ndryshimet që bie në sy është ai ridizajnoi zbatimin java.lang.reflect API (Reflektimi bërthamë), i projektuar për të marrë informacion në lidhje me metodat, fushat dhe konstruktorët e klasave, si dhe aksesin në strukturën e brendshme të klasave. api java.lang. reflektoni vetë nuk ka ndryshuar, por tani zbatohet duke përdorur identifikuesit të metodave të ofruara nga moduli java.lang.invoke, në vend të përdorimit të gjeneratorëve të bytecode. Ndryshimi lejoi të unifikojë dhe lehtësojë mirëmbajtjen e zbatimeve të java.lang.reflect dhe java.lang.invoke.

Përveç kësaj, përmendet edhe se propozohet zbatimi i tretë paraprak i Vector API, i cili siguron funksione për llogaritjet e vektorit që kryhen duke përdorur udhëzimet e vektorit të procesorëve x86_64 dhe AArch64 dhe ju lejon të aplikoni operacione njëkohësisht në vlera të shumta (SIMD). Ndryshe nga aftësitë e ofruara në përpiluesin HotSpot JIT për vektorizimin automatik të operacioneve skalare, API i ri ju lejon të kontrolloni në mënyrë të qartë vektorizimin për përpunimin paralel të të dhënave.

Theksohet gjithashtu se shtoi një ndërfaqe SPI (ndërfaqja e ofruesit të shërbimit) për të zgjidhur emrat e hosteve dhe adresat IP, i cili ju lejon të përdorni zgjidhje alternative në java.net.InetAddress që nuk janë të lidhura me drejtuesit e ofruar nga sistemi operativ.

Nga ana tjetër, është propozuar Zbatimi i dytë paraprak i API-së së funksionit të huaj dhe kujtesës, me të cilat aplikacionet mund të ndërveprojnë me kodin dhe të dhënat jashtë kohës së ekzekutimit të Java. API i ri lejon thirrjen efikase të funksioneve jo-JVM y aksesoni memorien e cila nuk menaxhohet nga JVM. Për shembull, mund të telefononi funksione nga bibliotekat e jashtme të përbashkëta dhe të përdorni të dhënat e procesit pa përdorur JNI.

Shtuar një zbatimi i dytë eksperimental i përputhjes së modeleve në shprehje kaloni, i cili ju lejon të përdorni shabllone fleksibël në vend të vlerave të sakta në etiketat "rast", duke mbuluar një numër vlerash në të njëjtën kohë, të cilat më parë kërkonin vargje të rënda të shprehjeve "if...else".

Paketa e përfshirë com.sun.net.httpserver, i cili përfshin programin jwebserver dhe API të bibliotekës me zbatimin nga një server i thjeshtë http për të shërbyer përmbajtje statike (CGI dhe kontrollorët e ngjashëm me servlet nuk mbështeten). Serveri i integruar http nuk është i optimizuar për ngarkesat e punës dhe nuk mbështet kontrollin e aksesit ose vërtetimin, pasi është krijuar kryesisht për përdorim në procesin e zhvillimit të projekteve të prototipit, korrigjimit dhe testimit.

Nga ndryshimet e tjera që bien në sy:

  • JavaDoc mbështet etiketën "@snippet» për të futur shembuj të punës dhe copa kodi në dokumentacionin API, të cilat mund të aksesohen me mjetet e vlefshmërisë, theksimin e sintaksës dhe integrimin IDE.
  • I vjetëruar dhe do të hiqet në një version të ardhshëm, mekanizmi i përfundimit, si dhe metodat përkatëse si p.sh Object.finalize(), Enum.finalize(), Runtime.runFinalization() dhe System.runFinalization().
  • mbledhësit e plehrave ZGC (Z Garbage Collector), SerialGC dhe ParallelGC ata mbështesin heqjen e dyfishimit të vargjeve.

JavaSE 18 është klasifikuar si një lëshim i rregullt mbështetës, me përditësime që do të publikohen përpara versionit të ardhshëm. Dega e mbështetjes afatgjatë (LTS) duhet të jetë Java SE 17, e cila do të marrë përditësime deri në vitin 2029.

Është e rëndësishme të mbani mend se duke filluar me lëshimin e Java 10, projekti kaloi në një proces të ri zhvillimi, që do të thotë një cikël më i shkurtër për formimin e versioneve të reja. Funksionaliteti i ri po zhvillohet tani në një degë kryesore të përditësuar vazhdimisht, e cila përfshin ndryshime tashmë të përfunduara dhe nga e cila degët degëzohen çdo gjashtë muaj për të stabilizuar publikimet e reja.

Merrni Java SE 18

Për ata që janë të interesuar të jenë në gjendje të testojnë këtë version të ri, ju lutemi dijeni se ndërtimet janë gati për Linux (x86_64, AArch64), Windows (x86_64) dhe macOS (x86_64, AArch64) dhe mund të merren nga lidhja më poshtë.