Java SE 16 kuburitswa

Mushure memwedzi mitanhatu yebudiriro, Oracle yakaburitsa Java SE 16 (Java Platform, Standard Edition 16), iyo inoshandisa iyo OpenJDK purojekiti senge referenzi rekuita. Java SE 16 inochengetedza kumashure kuenderana neyakapfuura kuburitswa kwepuratifomu yeJava; ese akanyorwa kare mapurojekiti eJava achashanda pasina shanduko paakatangwa pasi peiyo vhezheni itsva. Yakagadzirira-kuisa-inovaka yeJava SE 16 (JDK, JRE uye Server JRE) yakagadzirirwa Linux (x86_64, AArch64), Windows uye macOS. Yakagadzirwa neiyo OpenJDK purojekiti, iyo Java 16 referensi yekumisikidza yakavhurika yakazara sosi pasi peGPLv2 rezinesi, ine GNU ClassPath yakasarudzika inobvumira kubatanidza zvine simba nezvigadzirwa zvekutengesa.

Java SE 16 inorongedzerwa seyakajairwa rutsigiro kuburitswa uye icharamba ichigashira zvigadziriso kusvika kuburitswa kunotevera. Iyo Yenguva Yakareba Rutsigiro (LTS) bazi rinofanirwa kunge riri Java SE 11, iyo icharamba ichiwana zvigadziriso kusvika 2026. Iyo inotevera LTS kuburitswa yakarongerwa Gunyana 2021. Ngatikuyeuchidzei kuti kutanga nekuburitswa kweJava 10, purojekiti yakachinjika kune imwe nzira yekuvandudza, zvichireva kupfupika kutenderera kwekugadzirwa kwezvinoburitswa zvitsva. Kushanda kutsva kwave kugadziridzwa mune rimwe rinogara rakagadziridzwa master bazi, iro rinosanganisira yakagadzirira-yakagadzirwa shanduko uye kubva kune iyo matavi anoiswa matavi mwedzi mitanhatu yega yega kudzikamisa kuburitswa kutsva.

Mukugadzirira kuburitswa kutsva, budiriro yatama kubva kuMercurial vhezheni control system kuenda kuGit uye GitHub yekubatana kwekusimudzira chikuva. Kutama kwacho kunotarisirwa kuvandudza mashandiro ezvekuchengetedza, kuwedzera kugona kwekuchengetedza, kupa mukana wekuchinja munhoroondo yese yeprojekiti, kunatsiridza tsigiro yekuongorora kodhi, uye kugonesa maAPI kuti aite otomatiki mafambiro ebasa. Uye zvakare, kushandiswa kweGit neGitHub kunoita kuti chirongwa chiwedzere kukwezva kune vanotanga uye vanogadzira vakajaira Git.

Zvinhu zvitsva muJava 16 zvinosanganisira:

  • Yakawedzerwa yekuyedza module jdk.incubator.vector ine kuisirwa kweVector API, iyo inopa mabasa ekuverenga vector anoitwa pachishandiswa vector rairo pa x86_64 uye AArch64 processors uye inobvumira maoparesheni kuti ashandiswe panguva imwe chete kune akawanda hunhu (SIMD). Mukupesana nehunyanzvi hwakapihwa muHotSpot JIT compiler ye auto-vectorization ye scalar mashandiro, iyo API nyowani inobvumidza iwe kunyatso kudzora vectorization yekufananidza data kugadzirisa.
  • JDK neVM HotSpot kodhi yakanyorwa muC ++ inotenderwa kushandisa maficha akaunzwa muC++14 yakatarwa. Kare, C++98/03 zviyero zvaitenderwa.
  • Iyo ZGC (Z Garbage Collector), iyo inoshanda mu passive modhi uye inoderedza kunonoka nekuda kwekuunganidza marara zvakanyanya sezvinobvira, yakawedzera kugona kugadzira tambo stacks mukuwirirana pasina kumbomira tambo dzekushandisa. ZGC ikozvino inongova nebasa rinoda kumiswa, iyo inogara ichinonoka, kazhinji isingapfuuri mazana mashoma microseconds.
  • Yakawedzera rutsigiro rweUnix sockets (AF_UNIX) kune SocketChannel, ServerSocketChannel uye java.nio.channels makirasi.
  • Chiteshi chakaitwa kuLinux kugovera Alpine neyakajairwa C raibhurari musl, iyo inozivikanwa munzvimbo dzemidziyo, microservices, gore uye akadzamidzirwa masisitimu. Chiteshi chakarongwa munzvimbo dzakadai chinokutendera kuti umhanye zvirongwa zveJava sezvishandiso zvenguva dzose. Uye zvakare, uchishandisa jlink, unogona kubvisa ese asina kushandiswa mamodule uye kugadzira nharaunda shoma yakakwana yekumhanyisa application, iyo inobvumidza iwe kugadzira application-chaiyo compact mifananidzo.
  • Iyo Elastic Metaspace michina yakaitwa, ichigonesa mashandiro ekugovera uye kudzosa ndangariro inogarwa nekirasi metadata (metaspace) muJVM HotSpot. Kushandiswa kweElastic Metaspace kunoderedza kupatsanurwa kwendangariro, kunoderedza kirasi kurodha kumusoro, uye zvakare kune mhedzisiro inobatsira pakuita kwenguva refu-inomhanya server application nekuda kwekukurumidza kudzoka kwendangariro inogarwa neisina kushandiswa kirasi metadata kune inoshanda sisitimu. Kuti usarudze iyo memory yekuburitsa modhi mushure mekuburitsa makirasi, iyo sarudzo "-XX: MetaspaceReclaimPolicy=(yakaenzana|aggressive|hapana)" inopihwa.
  • Chiteshi cheJDK chakawedzerwa kune Windows masisitimu anoshanda pane Hardware ane processors akavakirwa paAArch64 architecture.
  • Yechitatu yekutarisa yekunze-Memory Access API yakatsanangurwa, ichibvumira Java maapplication kuti achengetedze uye nemazvo kuwana ndangariro nzvimbo dziri kunze kweJava murwi nekushandisa iyo itsva MemorySegment, MemoryAddress, uye MemoryLayout abstractions.
  • Yekuyedza Yekune dzimwe nyika Linker API yakaitwa, ichipa mukana kubva kuJava kuenda kune yemuno kodhi. Pamwe chete neEkunze-Memory API, iyo nyowani programming interface inoita kuti zvive nyore kugadzira wrappers pamusoro peakajairwa akagovaniswa maraibhurari.
  • Yakawedzera iyo jpackage utility, iyo inokutendera iwe kuti ugadzire mapakeji ega ega Java application. Iyo yekushandisa yakavakirwa pajavapackager kubva kuJavaFX uye inokutendera iwe kuti ugadzire mapakeji mumafomati anowanikwa kune akasiyana mapuratifomu (msi uye exe yeWindows, pkg uye dmg yeMacOS, deb uye rpm yeLinux). Iwo mapakeji anosanganisira zvese zvinodiwa zvinoenderana.
  • Strict encapsulation yevose vari mukati meJDK inogoneswa nekusarudzika, kunze kweakakosha APIs akadai sun.misc.Unsafe. Iko kukosha kwe "--illegal-access" sarudzo ikozvino yakagadzirirwa "kuramba" panzvimbo ye "mvumo" nekukasira, iyo inodzivisa kuedza kubva kukodhi yekuwana makirasi akawanda emukati, nzira neminda. Kuti upfuure kurambidzwa, shandisa iyo "-isiri pamutemo-kuwana = mvumo" sarudzo.
  • Kuitwa kwemaitiro ekufananidza mu "instanceof" opareta yakagadziriswa, izvo zvinokutendera iwe kuti utsanangure nekukasira kusiyanisa kwenzvimbo kureva kukosha kwakatariswa. Semuenzaniso, unogona kunyora pakarepo "kana (obj exampleof String s && s.length() > 5) {.. s.contains(..) ..}" pasina kutsanangura zvakajeka "String s = (String) obj". Waive: kana (obj muenzaniso weBoka) {Boka reboka = (Boka) obj; var entries = group.getEntries(); } Iye zvino unogona kuita pasina kutsanangura "Boka reboka = (Boka) obj": kana (obj exampleof Group group) {var entries = group.getEntries(); }
  • Kuitwa kweiyo "rekodhi" keyword yakagadziriswa, ichipa compact fomu yetsananguro dzekirasi iyo inobvisa kukosha kwekutsanangura zvakajeka nzira dzakasiyana-siyana dzepasi senge akaenzana (), hashCode () uye toString () mumamiriro ezvinhu panochengetwa data. muminda chete, izvo zvisingashanduki nazvo. Kana kirasi inoshandisa yakajairwa mashandisirwo eakaenzana (), hashCode () uye toString() nzira, inogona kuita pasina tsananguro yavo yakajeka: rekodhi rekodhi BankTransaction (LocalDate date, kaviri huwandu, tambo tsananguro) {}

    Ichi chiziviso chinozowedzera otomatiki mashandisirwo eequals(), hashCode() uye toString() nzira mukuwedzera kune muvaki uye getter nzira.

  • Yechipiri dhizaini inorongedzerwa makirasi akavharwa uye mainterface asingagone kushandiswa nemamwe makirasi uye mainterface kuti atore nhaka, kuwedzera, kana kudarika maitirwo. Makirasi akaiswa chisimbiso anopawo nzira inozivisa yekudzora kushandiswa kweyepamusoro pane yekuwana modhifita, zvichibva pakunyora zvakajeka madiki madiki anotenderwa kuwedzera. package com.example.geometry; kirasi yakavharwa yeruzhinji Maumbirwo emvumo com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {…}

Source: opennet.ru

Voeg