Java SE 20 kuburitswa

Mushure memwedzi mitanhatu yebudiriro, Oracle yakaburitsa Java SE 20 (Java Platform, Standard Edition 20) chikuva, icho chinoshandisa OpenJDK yakavhurika sosi purojekiti sereferensi yekushandisa. Kunze kwekubviswa kwemamwe maficha akaregwa, Java SE 20 inochengetedza kuenderana nekumashure kuburitswa kweJava papuratifomu-akawanda akanyorwa kare mapurojekiti eJava acharamba achishanda pasina kugadziridzwa kana ichiitwa pasi peiyo vhezheni itsva. Inogadzika inovakwa yeJava SE 20 (JDK, JRE, uye Server JRE) yakagadzirirwa Linux (x86_64, AArch64), Windows (x86_64), uye macOS (x86_64, AArch64). Yakagadzirwa neiyo OpenJDK purojekiti, iyo Java 20 referensi yekumisikidza yakavhurwa sosi pasi peGPLv2 rezinesi ine GNU ClassPath kunze kwekubvumira kubatanidza kune zvigadzirwa zvekutengesa.

Java SE 20 yakarongedzerwa seyakajairwa tsigiro kuburitswa, ine zvigadziriso zvinoburitswa isati yaburitswa. Iyo Yenguva Yakareba Rutsigiro (LTS) bazi rinofanira kunge riri Java SE 17, iyo inogashira zvigadziriso kusvika 2029. Rangarira kuti kutanga nekuburitswa kweJava 10, purojekiti yakachinjira kune imwe nzira yekuvandudza, iyo inoreva kupfupika kutenderera kwekugadzirwa kwezvinoburitswa zvitsva. Kushanda kutsva kuri kuvandudzwa mune rimwe rinogara rakagadziridzwa master bazi, iro rinobatanidza shanduko dzakatopera uye kubva kune matavi anoiswa mapazi mwedzi mitanhatu yega yega kuti agadzikane zvitsva zvinoburitswa.

Zvinhu zvitsva muJava 20 zvinosanganisira:

  • Kune yekutanga tsigiro yeScoped Values, ichibvumira isingachinjike data kugovaniswa mukati meshinda uye data rakatsinhaniswa zvakanaka pakati petambo dzemwana (tsika dzakagarwa). Scoped Values ​​iri kuvandudzwa kutsiva iyo shinda-yenzvimbo inoshanduka uye inoshanda zvakanyanya kana uchishandisa yakakura kwazvo tambo tambo (zviuru kana mamirioni eshinda). Musiyano mukuru pakati peScoped Values ​​uye shinda-yenzvimbo inosiyana ndeyekuti yekutanga yakanyorwa kamwe chete, haigone kuchinjwa mune ramangwana, uye inoramba iripo chete kwenguva yekuitwa kwetambo. class Server {yekupedzisira static ScopedValue CURRENT_USER = new ScopedValue(); void service(Chikumbiro chekukumbira, Mhinduro yemhinduro) {var level = (chikumbiro. Chinobvumirwa ()? ADMIN: GUEST); var mushandisi = mushandisi mutsva(level); ScopedValue.where(CURRENT_USER, user).run(() -> Application.handle(chikumbiro, mhinduro)); } } kirasi DatabaseManager {DBConnection open() {var user = Server.CURRENT_USER.get(); kana (!user.canOpen()) kanda InvalidUserException(); dzorera DBConnection itsva (...); }}
  • Yechipiri yekutarisisa yemarekodhi mapatani yakawedzerwa, ichiwedzera maitiro ekufananidza akaunzwa muJava 16 kuburitsa kukosha kwemakirasi erekodhi. Semuenzaniso: rekodhi Point (int x, int y) {} static void printSum (Object obj) {kana (obj exampleof Point p) {int x = px (); int y = py(); System.out.println(x+y); }}
  • Yechina yekutanga kuitiswa kwemaitiro ekufananidza mu "switch" zvirevo zvakawedzerwa, zvichibvumira "kesi" mavara kuti ashandise kwete chaiyo kukosha, asi anochinjika mapatani anofukidza akateedzana ehukoshero kamwechete, iyo yaimbove yakakosha kushandisa zvinorema. maketani ekuti β€œkana...zvimwe” matauriro. static String formatterPatternSwitch(Object obj) { return switch (obj) {case Integer i -> String.format("int%d", i); nyaya Yakareba l -> String.format("refu%d", l); case Kaviri d -> String.format("double %f", d); nyaya String s -> String.format("String%s", s); default -> o.toString(); }; }
  • Yechipiri yekutanga yekushandiswa kweFFM (Foreign Function & Memory) API yakawedzerwa, iyo inokutendera iwe kuronga kupindirana kweJava zvirongwa nekodhi yekunze uye data kuburikidza nekufona mabasa kubva kumaraibhurari ekunze uye kuwana ndangariro kunze kweJVM.
  • Yechipiri yekutarisisa yeadhirowa tambo yakawedzerwa, idzo tambo dzakareruka dzinorerutsa zvakanyanya kunyora uye kuchengetedza yepamusoro-inoshanda-yakawanda-tambo maapplication.
  • Yakawedzera yechipiri yekuyedza API yeyakagadziriswa parallelism, iyo inorerutsa kuvandudza kweakawanda-tambo maapplication nekubata akawanda mabasa anomhanya mushinda dzakasiyana sechivharo chimwe.
  • Yechishanu yekutarisisa yeVector API yakawedzerwa, ichipa mabasa ekuverenga vector ayo anoitwa uchishandisa vector rairo pa x86_64 uye AArch64 processors uye inobvumira mashandiro kuti ashandiswe panguva imwe chete kune akawanda kukosha (SIMD). Kusiyana nehunyanzvi hwakapihwa muHotSpot JIT compiler ye auto-vectorization ye scalar mashandiro, iyo API nyowani inoita kuti zvikwanise kudzora zvakajeka vectorization yekuenderana data data.

Source: opennet.ru

Voeg