Ho lokolloa ha sethala sa Java SE 22 le ts'ebetso e bulehileng ea litšupiso tsa OpenJDK 22

Kamora likhoeli tse ts'eletseng tsa nts'etsopele, Oracle e ile ea lokolla Java SE 22 (Java Platform, Standard Edition 22), e sebelisang projeke ea OpenJDK e bulehileng e le ts'ebetso ea litšupiso. Ntle le ho tlosoa ha likarolo tse ling tse sa sebetseng, Java SE 22 e boloka ho lumellana le morao-rao le likhatiso tse fetileng tsa sethala sa Java - merero ea Java e ngotsoeng pele e tla sebetsa ntle le liphetoho ha e tsamaisoa tlas'a mofuta o mocha. Mehaho e ikemiselitseng ho kenya Java SE 22 (JDK, JRE le Server JRE) e lokiselitsoe Linux (x86_64, AArch64), Windows (x86_64) le macOS (x86_64, AArch64). E ntlafalitsoe ke projeke ea OpenJDK, ts'ebetsong ea litšupiso tsa Java 22 ke mohloli o bulehileng ka botlalo tlasa laesense ea GPLv2, ntle le mekhelo ea GNU ClassPath e lumellang khokahano e matla le lihlahisoa tsa khoebo.

Java SE 22 e khetholloa e le tokollo ea kamehla ea tšehetso 'me e tla tsoelapele ho fumana lintlafatso ho fihlela tokollo e latelang. Lekala la Tšehetso ea Nako e Telele (LTS) e lokela ho ba Java SE 21 kapa Java SE 17, e tla fumana lintlafatso ho fihlela 2031 le 2029, ka ho latellana (e fumaneha ka kakaretso ho fihlela 2028 le 2026). Tšehetso ea sechaba bakeng sa lekala la LTS la Java SE 11 e felile ka Loetse e fetileng, empa tšehetso e atolositsoeng e tla tsoela pele ho fihlela 2032. Tšehetso e atolositsoeng bakeng sa lekala la LTS la Java SE 8 e tla tsoela pele ho fihlela 2030.

A re u hopotse hore ho qala ka tokollo ea Java 10, morero o fetohetse ts'ebetsong e ncha ea nts'etsopele, e bolelang potoloho e khuts'oane ea ho theoa ha likhatiso tse ncha. Ts'ebetso e ncha e se e ntlafalitsoe lekaleng le le leng le lecha le ntlafalitsoeng khafetsa, le kenyelletsang liphetoho tse seng li entsoe le moo makala a hlophisoang ka mor'a likhoeli tse ling le tse ling tse tšeletseng ho tsitsisa likhatiso tse ncha.

Likarolo tse ncha ho Java 22 li kenyelletsa:

  • Moqokeleli oa lithōle oa G1 o kenyelletsa ts'ehetso bakeng sa pinning ea libaka, e leng se u lumellang hore u lokise sebaka sa lintho tsa Java ka nakoana mohopolong ho qoba hore li suthisoe ke moqolli oa lithōle le ho lumella litšupiso tsa lintho tsena hore li fetisetsoe ka mokhoa o sireletsehileng pakeng tsa Java le khoutu ea lehae. Pinning e u lumella ho fokotsa latency le ho qoba ho thibela pokello ea lithōle ha u etsa libaka tse mahlonoko tsa JNI (Java Native Interface) ka khoutu ea tlhaho (ha u ntse u phethahatsa likarolo tsena, JVM ha ea lokela ho tsamaisa lintho tse mahlonoko tse amanang le tsona ho qoba maemo a morabe). Pinning e tlosa lintho tse mahlonoko ho tloha ponong ea batho ba bokellang lithōle, tse ka tsoelang pele ho hloekisa libaka tse sa phethoang.
  • Ho kenyellelitsoe karolo ea selelekela ho lumella mantsoe hore a hlalosoe ho lihahi pele a bitsa super(...), e sebelisetsoang ho bitsa ka ho hlaka sehahi sa sehlopha sa motsoali ho tsoa ho sehahi sa sehlopha se futsitsoeng haeba lipolelo tseo li sa bue ka ketsahalo e entsoeng ke moetsi. sehlopha sa Outer {hello e sa sebetse () { System.out.println("Hello"); } sehlopha sa Inner { Inner() { hello(); super(); }}}
  • API ea FFM (Foreign Function & Memory) e tsitsitse, e lumella ho sebelisana ha mananeo a Java a nang le khoutu ea ka ntle le data ka ho letsetsa mesebetsi ho tsoa lilaebraring tsa ka ntle le ho fumana mohopolo ka ntle ho JVM, ntle le ho sebelisa JNI (Java Native Interface).
  • Ts'ehetso ea mefuta e sa boleloang ka mabitso le ho bapisa mohlala e lumelletsoe - sebakeng sa mefuta e sa sebelisoeng empa e hlokahala le lipaterone ha u letsa, joale u ka hlakisa sebopeho sa "_". // e ne e le String pageName = switjha (leqephe) {ketsi GitHubIssuePage(var url, var content, var links, int issueNumber) -> "TS'OE #" + PhatlalatsoNomoro; ...}; // hona joale u ka khona String pageName = switjha (leqephe) {ketsi GitHubIssuePage(_, _, _, int issueNumber) -> "TS'OE #" + issueNumber; };
  • Ts'ebetsong ea pele ea Class-File API e khothalelitsoe bakeng sa ho arola, ho hlahisa le ho fetolela lifaele tsa sehlopha sa Java. ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(byte); byte[] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> {bakeng sa (ClassElement ce : classModel) {haeba (!(ce exampleof MethodModel mm && mm.methodName().stringValue(). startsWith("debug"))) { classBuilder.with(ce);
  • Sesebelisoa sa java se fana ka bokhoni ba ho tsamaisa mananeo a Java, a fanoeng ka mokhoa oa lifaele tse 'maloa tsa khoutu kapa lilaebrari tse hlophisitsoeng esale pele, ntle le ho bokella lifaele tsena ka thoko le ntle le ho hlophisa sistimi ea kaho. Karolo e ncha e etsa hore ho be bonolo ho tsamaisa mananeo ao khoutu ea lihlopha tse fapaneng e arotsoeng ka lifaele tse arohaneng. Prog.java: sehlopha sa Prog { public static void main(String[] args) { Helper.run(); } } Helper.java: class Helper { static void run() { System.out.println("Hello!"); }}

    Ka mohlala, ho tsamaisa lenaneo le nang le lifaele tse peli "Prog.java" le "Helper.java" hona joale ho lekane ho tsamaisa "java Prog.java", e tla bokella sehlopha sa Prog, ho hlalosa moelelo oa sehlopha sa Thuso, fumana le ho bokella faele ea Helper java le ho letsetsa mokhoa o ka sehloohong.

  • E kenyellelitse ts'ebetsong ea bobeli ea pele ea String Templates, e kentsoeng ho phaella ho li-text literals le li-text blocks. Lithempleite tsa likhoele li u lumella ho kopanya mongolo le lipolelo tse baloang le mefuta-futa ntle le ho sebelisa + opareitara. Phapanyetsano ea lipolelo e etsoa ho sebelisoa li-substitutes \{..}, 'me li- handlers tse khethehileng li ka kopanngoa ho hlahloba ho nepahala ha litekanyetso tse nketsoeng sebaka. Ka mohlala, enjene ea SQL e hlahloba litekanyetso tse ntseng li kenngoa ho khoutu ea SQL ebe e khutlisetsa ntho ea java.sql.Statement e le tlhahiso, ha processor ea JSON e beha leihlo ho nepahala ha li-substitutes tsa JSON le ho khutlisetsa JsonNode. Potso ea likhoele = "KHETHA * HO TSOA HO Motho p HOKAE p." + thepa + " = '" + boleng + "'"; // e ne e le Potso ya Polelo = SQL.""" KHETHA * HO TSOA HO Motho p KAE p.\{property} = '\{value}'"""; // fetoha
  • Ponahalo ea bosupa ea Vector API e kenyellelitsoe, e fana ka mesebetsi bakeng sa lipalo tsa vector tse etsoang ho sebelisoa litaelo tsa vector ho li-processor tsa x86_64 le AArch64 mme e lumella ts'ebetso hore e sebelisoe ka nako e le 'ngoe ho boleng bo bongata (SIMD). Ho fapana le bokhoni bo fanoeng ho HotSpot JIT compiler bakeng sa auto-vectorization ea scalar operations, API e ncha e etsa hore ho khonehe ho laola vectorization ka ho hlaka bakeng sa ts'ebetso ea data e tšoanang.
  • Ts'ebetsong ea pele ea Stream API e atolositsoeng e kenyelelitsoe e tšehetsang ho hlalosa ts'ebetso ea hau ea bohareng, e ka 'nang ea e-ba molemo maemong ao mesebetsi e teng e hahiloeng ka hare e sa lekaneng bakeng sa phetoho ea data e lakatsehang. Batšoantšisi ba matsoalloa ba hokahane ho sebelisoa ts'ebetso e ncha ea mahareng Stream::gather(Gatherer), e sebetsanang le likarolo tsa molapo ka ho sebelisa sebapi se boletsoeng ke mosebelisi ho bona. jshell> Phallo.ea(1,2,3,4,5,6,7,8,9).bokella(WindowFixed(3) e ncha).toList() $1 ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]
  • Phetolelo ea bobeli ea API ea liteko bakeng sa Concurrency e hlophisitsoeng e hlahisitsoe bakeng sa tlhahlobo, e nolofatsang nts'etsopele ea lits'ebetso tse nang le likhoele tse ngata ka ho sebetsana le mesebetsi e mengata e etsoang ka likhoele tse fapaneng joalo ka boloko bo le bong.
  • E kentse ts'ebetsong ea bobeli ea lihlopha tse boletsoeng ka mokhoa o hlakileng le mehlala e sa boleloang ka mabitso ea "mokhoa o ka sehloohong", o ka fanang ka liphatlalatso tsa sechaba / tse tsitsitseng, ho fetisa likhang tse ngata, le mekhatlo e meng e amanang le phatlalatso ea sehlopha. // e ne e le sehlopha sa sechaba sa HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } } // hona joale o ka hlakola ka sehloohong () { System.out.println("Hello, World!"); }
  • E kentse ts'ebetsong ea ponelopele ea bobeli ea Scoped Values, e lumellang data e sa fetoheng hore e arolelanoe ka likhoele le data e fapanyetsanoang hantle lipakeng tsa likhoele tsa bana (litekanyetso li futsitsoe). Li-Scoped Values ​​li ntse li ntlafatsoa ho nkela sebaka sa likhoele tse feto-fetohang 'me li sebetsa hantle haholo ha ho sebelisoa likhoele tse ngata haholo (tse likete kapa limilione tsa likhoele). Phapang e kholo lipakeng tsa Scoped Values ​​le mefuta e fapaneng ea sebaka sa khoele ke hore ea pele e ngotsoe hang, e ke ke ea fetoloa nakong e tlang, 'me e lula e fumaneha feela nakong ea ts'ebetso ea khoele.
  • Parallel 'mokelli oa lithōle o ntlafalitse ts'ebetso ha o sebetsa ka mefuta e mengata ea lintho. Ntlafatso e entse hore ho khonehe litekong tse ling ka mefuta e mengata ea lintho ho fokotsa tieho pele o qala ho batla ntho ka 20%.

Ntle le moo, o ka ela hloko phatlalatso ea ntlafatso sethaleng bakeng sa ho theha lits'ebetso tse nang le sebopeho sa graphical JavaFX 22.

Source: opennet.ru

Eketsa ka tlhaloso