Po šestih mesecih razvoja Oracle je izdal izdajo nova različica JavaSE 18 (Standard Edition), ki uporablja odprtokodni projekt OpenJDK kot referenčno izvedbo.
V tej novi različici Java SE 18 je na voljo z izjemo odstranitev nekaterih zastarelih funkcij, ohranja združljivost s starejšimi različicami platforme Java in večina predhodno napisanih projektov Java bo še naprej delovala nespremenjeno, ko se bo izvajala z novo različico.
Glavne novosti Java SE 18
V tej novi izdaji Java SE 18 je privzeto kodiranje UTF-8. API-ji Java, ki obdelujejo besedilne podatke s kodiranimi znaki bo zdaj privzeto uporabljal UTF-8 na vseh platformah, ne glede na sistemske in regionalne nastavitve. Če želite vrniti staro vedenje, kjer je kodiranje izbrano ob upoštevanju področne nastavitve sistema, lahko uporabite parameter “-Dfile.encoding=COMPAT”.
Še ena izmed sprememb, ki izstopa, je on preoblikoval implementacijo API-ja java.lang.reflect (Core Reflection), zasnovan za pridobivanje informacij o metodah, poljih in konstruktorjih razredov ter dostop do notranje strukture razredov. api java.lang.reflect sam se ni spremenil, vendar je zdaj implementiran z uporabo identifikatorjev metod, ki jih nudi modul java.lang.invoke, namesto da bi uporabljali generatorje bajtnih kod. Sprememba je omogočila poenotenje in olajšanje vzdrževanja izvedb java.lang.reflect in java.lang.invoke.
Poleg tega je omenjeno tudi, da predlagana je tretja predhodna implementacija Vector API, ki zagotavlja funkcije za vektorske izračune, ki se izvajajo z uporabo vektorskih navodil procesorjev x86_64 in AArch64 in vam omogoča hkratno uporabo operacij za več vrednosti (SIMD). Za razliko od zmogljivosti, ki jih ponuja prevajalnik HotSpot JIT za samodejno vektorizacijo skalarnih operacij, novi API vam omogoča izrecno nadzorovanje vektorizacije za vzporedno obdelavo podatkov.
Poudarjeno je tudi, da dodal vmesnik SPI (vmesnik ponudnika storitev) za razrešitev imen gostiteljev in naslovov IP, ki vam omogoča uporabo alternativnih razreševalnikov v java.net.InetAddress, ki niso vezani na gonilnike, ki jih zagotavlja operacijski sistem.
Po drugi strani pa je bilo predlagano druga predhodna implementacija API-ja za tuje funkcije in pomnilnik, s katerim lahko aplikacije komunicirajo s kodo in podatki zunaj izvajalnega okolja Java. Novi API omogoča učinkovito klicanje funkcij, ki niso JVM y dostop do pomnilnika ki ga ne upravlja JVM. Funkcije lahko na primer pokličete iz zunanjih knjižnic v skupni rabi in dostopate do podatkov procesa brez uporabe JNI.
Dodan a druga eksperimentalna izvedba ujemanja vzorcev v izrazih stikalo, ki vam omogoča uporabo prilagodljivih predlog namesto natančnih vrednosti v oznakah "case", ki zajemajo številne vrednosti hkrati, kar je prej zahtevalo okorne nize izrazov "if ... else".
Komplet vsebuje com.sun.net.httpserver, ki vključuje pripomoček jwebserver in API knjižnice z izvedbo s preprostega http strežnika za prikaz statične vsebine (CGI in krmilniki, podobni servletom, niso podprti). Vgrajeni strežnik http ni optimiziran za delovne obremenitve in ne podpira nadzora dostopa ali preverjanja pristnosti, saj je zasnovan predvsem za uporabo v procesu razvoja prototipov, odpravljanja napak in testiranja projektov.
Od ostalih sprememb ki izstopajo:
- JavaDoc podpira oznako "@odrezek» za vdelavo delovnih primerov in odrezkov kode v dokumentacijo API, do katere je mogoče dostopati z orodji za preverjanje veljavnosti, poudarjanjem sintakse in integracijo IDE.
- Zastarel in bo odstranjen v prihodnji izdaji, mehanizem za dokončanje in sorodne metode, kot je npr Object.finalize(), Enum.finalize(), Runtime.runFinalization() in System.runFinalization().
- zbiralci smeti ZGC (Z zbiralnik smeti), SerialGC in ParallelGC podpirajo deduplikacijo nizov.
JavaSE 18 je razvrščena kot redna izdaja podpore, s posodobitvami, ki bodo izdane pred naslednjo različico. Veja za dolgoročno podporo (LTS) bi morala biti Java SE 17, ki bo prejemala posodobitve do leta 2029.
Pomembno si je zapomniti, da je projekt od začetka izdaje Java 10 prešel na nov razvojni proces, kar pomeni krajši cikel oblikovanja nove izdaje. Nova funkcionalnost se zdaj razvija v stalno posodabljani glavni veji, ki vključuje spremembe, ki so že zaključene in iz katerih se veje odcepijo vsakih šest mesecev, da stabilizirajo nove izdaje.
Prenesite Java SE 18
Za tiste, ki jih zanima, da bi lahko preizkusili to novo izdajo, vedite, da so različice pripravljene za Linux (x86_64, AArch64), Windows (x86_64) in macOS (x86_64, AArch64) in jih je mogoče dobiti s spodnje povezave.