Java SE 20 yatulutsidwa

Pambuyo pa miyezi isanu ndi umodzi yachitukuko, Oracle yatulutsa nsanja ya Java SE 20 (Java Platform, Standard Edition 20), yomwe imagwiritsa ntchito pulojekiti yotseguka ya OpenJDK ngati njira yowonetsera. Kupatulapo kuchotsedwa kwa zinthu zina zomwe zidasiyidwa, Java SE 20 imasungabe kuyanjana ndi zomwe zidatulutsidwa m'mbuyomu papulatifomu ya Java-mapulojekiti ambiri a Java omwe adalembedwa kale azigwirabe ntchito popanda kusinthidwa akamayendetsedwa ndi mtundu watsopano. Zomangamanga za Java SE 20 (JDK, JRE, ndi Server JRE) zakonzedwa ku Linux (x86_64, AArch64), Windows (x86_64), ndi macOS (x86_64, AArch64). Yopangidwa ndi pulojekiti ya OpenJDK, kukhazikitsa kwa Java 20 ndikotsegula kwathunthu pansi pa laisensi ya GPLv2 yokhala ndi GNU ClassPath kupatula kuti ilole kulumikizana mwamphamvu ndi malonda.

Java SE 20 imayikidwa ngati chithandizo chothandizira nthawi zonse, ndi zosintha zomwe ziyenera kutulutsidwa kutulutsidwa kotsatira. Nthambi ya Long Term Support (LTS) iyenera kukhala Java SE 17, yomwe ilandila zosintha mpaka 2029. Kumbukirani kuti kuyambira ndikutulutsidwa kwa Java 10, pulojekitiyi idasinthiratu njira yatsopano yachitukuko, yomwe imatanthawuza kuti kufupikitsa kupangidwa kwatsopano. Ntchito zatsopano zikupangidwa munthambi imodzi yosinthidwa mosalekeza, yomwe imaphatikiza zosintha zomwe zamalizidwa kale komanso zomwe nthambi zake zimasinthidwa miyezi isanu ndi umodzi iliyonse kuti zikhazikitse zatsopano.

Zatsopano mu Java 20 zikuphatikiza:

  • Pali chithandizo choyambirira cha Scoped Values, kulola kuti data yosasinthika igawidwe pa ulusi uliwonse ndikusinthana bwino pakati pa ulusi wa ana (zotengera zimatengera cholowa). Ma Scoped Values ​​akupangidwa kuti alowe m'malo mwa ulusi wosinthika wamaloko ndipo amakhala achangu mukamagwiritsa ntchito ulusi wambiri (zikwi kapena mamiliyoni a ulusi). Kusiyana kwakukulu pakati pa Scoped Values ​​ndi zosintha zamtundu wa ulusi ndikuti zoyambazo zimalembedwa kamodzi, sizingasinthidwe mtsogolomo, ndipo zimakhalapobe nthawi yonse yomwe ulusiwo ukuchitidwa. class Server {final static ScopedValue CURRENT_USER = ScopedValue yatsopano(); void service(Pempho la pempho, Yankho) { var level = (pempho. Ndilololedwa ()? ADMIN : WOLEMEKEZA); var user = Wogwiritsa ntchito watsopano(level); ScopedValue.where(CURRENT_USER, user).run(() -> Application.handle(pempho, yankho)); } } class DatabaseManager { DBConnection open () { var user = Server.CURRENT_USER.get (); ngati (!user.canOpen()) ataponya InvalidUserException(); bweretsani DBConnection yatsopano (...); }}
  • Chiwonetsero chachiwiri cha machitidwe ojambulira chawonjezedwa, kukulitsa mawonekedwe ofananira omwe adayambitsidwa mu Java 16 kuti afotokozere zomwe amaphunzira. Mwachitsanzo: rekodi Point(int x, int y) {} static void printSum(Object obj) {ngati (obj exampleof Point p) {int x = px(); int y = py (); System.out.println(x+y); }}
  • Kukhazikitsa kwachinayi koyambira kofananira ndi mawu a "switch" kwawonjezedwa, kulola kuti zilembo za "mlandu" zigwiritse ntchito osati zenizeni, koma mawonekedwe osinthika omwe amaphatikiza zikhalidwe zingapo nthawi imodzi, zomwe m'mbuyomu zinali zofunikira kugwiritsa ntchito zovuta. maunyolo a mawu akuti "ngati ... kwina". static String formatterPatternSwitch(Object obj) {kusintha kusintha (obj) { case Integer i -> String.format("int %d", i); mlandu Wautali l -> String.format("kutalika%d", l); mlandu kawiri d -> String.format("double%f", d); kesi Chingwe s -> String.format("Chingwe %s", s); zosasintha -> o.toString(); }; }
  • Kukhazikitsa kwachiwiri koyambirira kwa FFM (Foreign Function & Memory) API yawonjezedwa, yomwe imakulolani kuti mukonzekere kuyanjana kwa mapulogalamu a Java ndi ma code akunja ndi deta kudzera mukuyitana ntchito kuchokera ku malaibulale akunja ndikupeza kukumbukira kunja kwa JVM.
  • Chiwonetsero chachiwiri cha ulusi weniweni wawonjezedwa, womwe ndi ulusi wopepuka womwe umathandizira kwambiri kulemba ndikusunga magwiridwe antchito amitundu yambiri.
  • Adawonjezeranso API yoyeserera yachiwiri yofananira yokhazikika, yomwe imathandizira kupanga mapulogalamu amitundu yambiri pochita ntchito zingapo zomwe zikuyenda mumizere yosiyana ngati chipika chimodzi.
  • Chiwonetsero chachisanu cha Vector API chawonjezedwa, ndikupereka ntchito zowerengera vekitala zomwe zimachitidwa pogwiritsa ntchito malangizo a vekitala pa x86_64 ndi mapurosesa a AArch64 ndikulola kuti ntchito zizigwiritsidwa ntchito nthawi imodzi kuzinthu zingapo (SIMD). Mosiyana ndi mphamvu zomwe zimaperekedwa mu HotSpot JIT compiler for auto-vectorization of scalar operations, API yatsopano imapangitsa kuti zikhale zotheka kuwongolera bwino ma vectorization kuti agwirizane ndi deta.

Source: opennet.ru

Kuwonjezera ndemanga