Ukukhishwa kwe-Java SE 20

Ngemuva kwezinyanga eziyisithupha zokuthuthuka, i-Oracle ikhiphe i-Java SE 20 (i-Java Platform, i-Standard Edition 20), esebenzisa iphrojekthi ye-OpenJDK yomthombo ovulekile njengokuqaliswa kwereferensi. Ngaphandle kokususwa kwezinye izici ezingasasebenzi, i-Java SE 20 igcina ukuhambisana okusemuva nokukhishwa kwangaphambilini kweplathifomu ye-Java - amaphrojekthi amaningi e-Java abhalwe ngaphambilini azosebenza ngaphandle kwezinguquko lapho esebenza ngaphansi kwenguqulo entsha. Izakhiwo ezilungele ukufaka ze-Java SE 20 (JDK, JRE ne-Server JRE) zilungiselelwa i-Linux (x86_64, AArch64), Windows (x86_64) kanye ne-macOS (x86_64, AArch64). Ithuthukiswe iphrojekthi ye-OpenJDK, ukusetshenziswa kwesithenjwa se-Java 20 kuwumthombo ovulekile ngokugcwele ngaphansi kwelayisensi ye-GPLv2, okuhlukile kwe-GNU ClassPath okuvumela ukuxhumana okunamandla nemikhiqizo yezentengiso.

I-Java SE 20 ihlukaniswa njengokukhululwa kosekelo okuvamile futhi izoqhubeka nokuthola izibuyekezo kuze kube ukukhishwa okulandelayo. Igatsha Lokusekela Isikhathi Eside (LTS) kufanele libe yi-Java SE 17, ezoqhubeka nokuthola izibuyekezo kuze kube ngu-2029. Ake sikukhumbuze ukuthi kusukela ngokukhululwa kwe-Java 10, iphrojekthi ishintshele kunqubo entsha yokuthuthukisa, okusho umjikelezo omfushane wokwakhiwa kokukhishwa okusha. Ukusebenza okusha manje sekuthuthukisiwe egatsheni elilodwa eliyinhloko elivuselelwe njalo, elihlanganisa izinguquko esezilungile futhi lapho amagatsha enziwa khona njalo ngemva kwezinyanga eziyisithupha ukuze kuzinziswe ukukhishwa okusha.

Izici ezintsha ku-Java 20 zifaka:

  • Kukhona ukwesekwa kokuqala Kwamavelu Ahlanganisiwe, okuvumela idatha engaguquleki ukuthi yabiwe kuwo wonke uchungechunge kanye nedatha eshintshiwe ngokuphumelelayo phakathi kochungechunge lwezingane (amanani azuzwa njengefa). I-Scoped Values ​​iyathuthukiswa ukuze ithathele indawo uchungechunge lwezintambo eziguquguqukayo zendawo futhi isebenza kahle uma kusetshenziswa izinombolo ezinkulu kakhulu zezintambo ezibonakalayo (izinkulungwane noma izigidi zezintambo). Umehluko omkhulu phakathi Kwamavelu Ahlanganisiwe nokuguquguquka kwendawo okucutshungulwa ukuthi eyokuqala ibhalwa kanye, ayikwazi ukushintshwa ngokuzayo, futhi ihlala itholakala kuphela ngesikhathi sokwenziwa kochungechunge. Iseva yekilasi {i-Final static ScopedValue CURRENT_USER = i-ScopedValue entsha(); i-void service(Isicelo sesicelo, impendulo yempendulo) {var level = (isicelo. Sigunyaziwe()? UMPHATHI : GUEST); var user = Umsebenzisi omusha(izinga); ScopedValue.where(CURRENT_USER, umsebenzisi).gijima(() -> Application.handle(isicelo, impendulo)); } } I-DatabaseManager yekilasi { DBConnection open() { var user = Server.CURRENT_USER.get(); uma (!user.canOpen()) ephonsa i-InvalidUserException(); buyisela i-DBConnection entsha(...); }}
  • Ukubuka kuqala kwesibili kwamaphethini okurekhoda kungeziwe, kunweba isici sokufanisa iphethini esethulwe ku-Java 16 ukuze kuncozululwe amanani amakilasi okurekhoda. Isibonelo: Iphoyinti lokurekhoda(int x, int y) {} i-static void printSum(Object obj) {uma (obj exampleof Point p) { int x = px(); int y = py(); I-System.out.println(x+y); }}
  • Ukuqaliswa kwesesine kokuqala kokumataniswa kwephethini kuzitatimende "zokushintsha" kwengeziwe, okuvumela amalebula "icala" ukuthi asebenzise amanani angaqondile, kodwa amaphethini aguquguqukayo ahlanganisa uchungechunge lwamanani ngesikhathi esisodwa, okwakudingeka ngaphambilini ukuba kusetshenziswe kanzima. amaketango ezinkulumo ezithi β€œuma...kungenjalo”. static String formatterPatternSwitch(Object obj) { return switch (obj) { case Integer i -> String.format("int %d", i); icala elide l -> String.format("inde %d", l); icala d -> String.format("double %f", d); icala Intambo s -> String.format("String %s", s); okuzenzakalelayo -> o.toString(); }; }
  • Ukuqaliswa kwesibili kokuqala kwe-FFM (I-Foreign Function & Memory) API yengeziwe, ekuvumela ukuthi uhlele ukusebenzisana kwezinhlelo ze-Java ngekhodi yangaphandle kanye nedatha ngokusebenzisa imisebenzi yokubiza evela emitatsheni yolwazi yangaphandle kanye nokufinyelela inkumbulo ngaphandle kwe-JVM.
  • Ukubuka kuqala kwesibili kwemicu ebonakalayo yengeziwe, okuyizintambo ezingasindi ezenza lula ukubhala nokugcina ukusebenza okuphezulu kwezinhlelo zokusebenza ezinemicu eminingi.
  • Kwengezwe i-API yesibili yokuhlola yokufana okuhlelekile, okwenza kube lula ukuthuthukiswa kwezinhlelo zokusebenza ezinezintambo eziningi ngokuphatha imisebenzi eminingi egijima emicu ehlukene njengebhulokhi eyodwa.
  • Ukubuka kuqala kwesihlanu kwe-Vector API kungeziwe, okuhlinzeka ngemisebenzi yezibalo ze-vector ezenziwa kusetshenziswa imiyalelo ye-vector kumaphrosesa we-x86_64 kanye ne-AArch64 futhi kuvumela ukusebenza ukuthi kusetshenziswe ngesikhathi esisodwa kumanani amaningi (SIMD). Ngokungafani namandla anikezwe kusihlanganisi se-HotSpot JIT okwenziwa ngokuzenzakalela kwemisebenzi ye-scalar, i-API entsha yenza kube nokwenzeka ukulawula ngokusobala ukwenziwa kwe-vector ukuze kucutshungulwe idatha efanayo.

Source: opennet.ru

Engeza amazwana