Kutolewa kwa Java SE20

Baada ya miezi sita ya maendeleo, Oracle ilitoa Java SE 20 (Jukwaa la Java, Toleo la Kawaida la 20), ambayo hutumia mradi wa OpenJDK wa chanzo-wazi kama utekelezaji wa marejeleo. Isipokuwa kuondolewa kwa baadhi ya vipengele vilivyopitwa na wakati, Java SE 20 hudumisha upatanifu wa nyuma na matoleo ya awali ya jukwaa la Java - miradi mingi ya Java iliyoandikwa hapo awali itafanya kazi bila mabadiliko inapoendeshwa chini ya toleo jipya. Miundo iliyo tayari kusakinishwa ya Java SE 20 (JDK, JRE na Server JRE) imetayarishwa kwa ajili ya Linux (x86_64, AArch64), Windows (x86_64) na macOS (x86_64, AArch64). Iliyoundwa na mradi wa OpenJDK, utekelezaji wa marejeleo ya Java 20 ni chanzo wazi kabisa chini ya leseni ya GPLv2, na vighairi vya GNU ClassPath vinavyoruhusu kuunganisha kwa nguvu na bidhaa za kibiashara.

Java SE 20 imeainishwa kama toleo la kawaida la usaidizi na itaendelea kupokea masasisho hadi toleo lijalo. Tawi la Usaidizi wa Muda Mrefu (LTS) linapaswa kuwa Java SE 17, ambayo itaendelea kupokea masasisho hadi 2029. Hebu tukumbushe kwamba kuanzia na kutolewa kwa Java 10, mradi ulibadilika kwa mchakato mpya wa maendeleo, ikimaanisha mzunguko mfupi wa uundaji wa matoleo mapya. Utendaji mpya sasa unakuzwa katika tawi moja kuu lililosasishwa kila mara, ambalo linajumuisha mabadiliko yaliyotengenezwa tayari na ambayo matawi hukatwa kila baada ya miezi sita ili kuleta utulivu wa matoleo mapya.

Vipengele vipya katika Java 20 ni pamoja na:

  • Kuna usaidizi wa awali wa Thamani Zilizowekwa, kuruhusu data isiyoweza kubadilika kushirikiwa katika nyuzi na data kubadilishana kwa ufanisi kati ya nyuzi za watoto (maadili yanarithiwa). Maadili ya Upeo yanatengenezwa ili kuchukua nafasi ya utaratibu wa vigezo vya ndani vya nyuzi na ni bora zaidi wakati wa kutumia idadi kubwa sana ya nyuzi pepe (maelfu au mamilioni ya nyuzi). Tofauti kuu kati ya Maadili ya Upeo na vigezo vya ndani vya nyuzi ni kwamba za kwanza zimeandikwa mara moja, haziwezi kubadilishwa katika siku zijazo, na kubaki zinapatikana tu kwa muda wa utekelezaji wa thread. Seva ya darasa {Final static ScopedValue CURRENT_USER = ScopedValue mpya(); utumishi batili(Ombi la ombi, jibu la majibu) { var level = (ombi. Imeidhinishwa()? ADMIN : MGENI); var user = Mtumiaji mpya(kiwango); ScopedValue.where(CURRENT_USER, user).run(() -> Application.handle(ombi, jibu)); } } darasa DatabaseManager { DBConnection open() { var user = Server.CURRENT_USER.get(); ikiwa (!user.canOpen()) kutupa InvalidUserException(); rudisha DBConnection mpya(...); }}
  • Onyesho la kuchungulia la pili la ruwaza za rekodi limeongezwa, na kupanua kipengele cha kulinganisha muundo kilicholetwa katika Java 16 ili kuchanganua thamani za madarasa ya rekodi. Kwa mfano: rekodi Point(int x, int y) {} static void printSum(Object obj) { if (obj exampleof Point p) { int x = px(); int y = py(); System.out.println(x+y); }}
  • Utekelezaji wa nne wa awali wa ulinganishaji wa muundo katika taarifa za "badili" umeongezwa, ikiruhusu lebo za "kesi" kutumia sio maadili halisi, lakini mifumo inayoweza kunyumbulika ambayo inashughulikia safu ya maadili mara moja, ambayo hapo awali ilikuwa muhimu kutumia. minyororo ya misemo ya "ikiwa ... vinginevyo". static String formatterPatternSwitch(Object obj) { return switch (obj) { case Integer i -> String.format("int %d", i); kesi Long l -> String.format("nde %d", l); kesi Double d -> String.format("double %f", d); kesi Kamba s -> String.format("Kamba %s", s); chaguo-msingi -> o.toString(); }; }
  • Utekelezaji wa pili wa awali wa API ya FFM (Kazi ya Kigeni & Kumbukumbu) umeongezwa, ambayo inakuwezesha kupanga mwingiliano wa programu za Java na msimbo wa nje na data kupitia kazi za kupiga simu kutoka kwa maktaba ya nje na kupata kumbukumbu nje ya JVM.
  • Onyesho la kuchungulia la pili la nyuzi pepe limeongezwa, ambazo ni nyuzi nyepesi ambazo hurahisisha sana uandishi na kudumisha utendakazi wa juu wa programu zenye nyuzi nyingi.
  • Imeongeza API ya pili ya majaribio ya usambamba uliopangwa, ambayo hurahisisha uundaji wa programu zenye nyuzi nyingi kwa kushughulikia kazi nyingi zinazoendeshwa katika nyuzi tofauti kama kizuizi kimoja.
  • Onyesho la kuchungulia la tano la API ya Vekta limeongezwa, likitoa huduma za hesabu za vekta ambazo hufanywa kwa kutumia maagizo ya vekta kwenye vichakataji vya x86_64 na AArch64 na kuruhusu utendakazi kutumika kwa wakati mmoja kwa thamani nyingi (SIMD). Tofauti na uwezo uliotolewa katika mkusanyaji wa HotSpot JIT wa uwekaji vekta otomatiki wa shughuli za kadiri, API mpya huwezesha kudhibiti uwekaji vekta kwa uchakataji sambamba wa data.

Chanzo: opennet.ru

Kuongeza maoni