Hoʻokuʻu ʻia ʻo Java SE 22 platform a me OpenJDK 22 hoʻokō kuhikuhi kuhikuhi

Ma hope o ʻeono mahina o ka hoʻomohala ʻana, ua hoʻokuʻu ʻo Oracle iā Java SE 22 (Java Platform, Standard Edition 22), e hoʻohana ana i ka papahana OpenJDK open-source ma ke ʻano he hoʻokō kuhikuhi. Me ka wehe ʻana i kekahi mau hiʻohiʻona kahiko, mālama ʻo Java SE 22 i ka hoʻohālikelike hope me nā hoʻokuʻu mua ʻana o ka platform Java - ʻo ka hapa nui o nā papahana Java i kākau mua ʻia e hana me ka ʻole o nā loli ke holo ʻia ma lalo o ka mana hou. Hoʻomākaukau ʻia nā kūkulu kūkulu ʻana o Java SE 22 (JDK, JRE a me Server JRE) no Linux (x86_64, AArch64), Windows (x86_64) a me macOS (x86_64, AArch64). Hoʻomohala ʻia e ka papahana OpenJDK, ʻo ka Java 22 reference hoʻokō i wehe piha ʻia ma lalo o ka laikini GPLv2, me nā ʻokoʻa GNU ClassPath e ʻae ana i ka pilina ikaika me nā huahana kalepa.

Ua helu ʻia ʻo Java SE 22 ma ke ʻano he kākoʻo kākoʻo maʻamau a e hoʻomau ʻia e loaʻa nā mea hou a hiki i ka hoʻokuʻu ʻana aʻe. Pono ka lālā Long Term Support (LTS) ʻo Java SE 21 a i ʻole Java SE 17, e loaʻa i nā mea hou a hiki i 2031 a me 2029, kēlā me kēia (loaʻa maʻamau a hiki i 2028 a me 2026). Ua pau ke kākoʻo lehulehu no ka lālā LTS o Java SE 11 i ka mahina o Kepakemapa i hala, akā e hoʻomau ʻia ke kākoʻo hoʻonui a hiki i 2032. E hoʻomau ʻia ke kākoʻo no ka lālā LTS o Java SE 8 a hiki i 2030.

E hoʻomanaʻo mākou iā ʻoe e hoʻomaka me ka hoʻokuʻu ʻana o Java 10, ua hoʻololi ka papahana i kahi kaʻina hoʻomohala hou, e hōʻike ana i kahi pōkole pōkole no ka hoʻokumu ʻana i nā hoʻokuʻu hou. Hoʻomohala ʻia nā hana hou i loko o kahi lālā kumu i hoʻonui mau ʻia, aia nā hoʻololi i hana ʻia a hoʻololi ʻia nā lālā i kēlā me kēia ʻeono mahina e hoʻopaʻa i nā hoʻokuʻu hou.

Aia nā hiʻohiʻona hou ma Java 22:

  • Loaʻa i ka ʻohi ʻōpala G1 ke kākoʻo no ka pinning wahi, kahi e hiki ai iā ʻoe ke hoʻoponopono i kahi manawa o nā mea Java i ka hoʻomanaʻo e pale aku iā lākou i ka neʻe ʻia e ka ʻōpala a e ʻae i nā kuhikuhi ʻana i kēia mau mea e hele palekana ma waena o Java a me nā code maoli. Hiki iā ʻoe ke hoʻemi i ka lohi a pale aku i ka hoʻopau ʻana i ka hōʻiliʻili ʻōpala i ka wā e hoʻokō ai i nā wahi koʻikoʻi o JNI (Java Native Interface) me ke code maoli (i ka wā e hoʻokō ai i kēia mau ʻāpana, ʻaʻole pono ka JVM e hoʻoneʻe i nā mea koʻikoʻi e pili ana iā lākou i mea e pale ai i nā kūlana lāhui). Hoʻopau ka paʻi ʻana i nā mea koʻikoʻi mai ka ʻike ʻana o ka ʻōpala, hiki ke hoʻomau i ka hoʻomaʻemaʻe ʻana i nā wahi i hoʻopaʻa ʻole ʻia.
  • Ua hoʻohui ʻia kahi hiʻohiʻona mua e ʻae i nā ʻōlelo i wehewehe ʻia i loko o nā mea kūkulu hale ma mua o ke kāhea ʻana i ka super(...), i hoʻohana ʻia no ke kāhea ʻana i kahi mea kūkulu papa makua mai kahi mea hana papa hoʻoilina inā ʻaʻole pili kēlā mau ʻōlelo i kahi mea i hana ʻia e ka mea hana. papa Mawaho { void hello() { System.out.println("Aloha"); } papa Iloko { Inner() { aloha(); super(); } } }
  • Ua hoʻokūpaʻa ʻia ka FFM (Foreign Function & Memory) API, e ʻae ana i ka launa pū ʻana o nā polokalamu Java me ka code waho a me ka ʻikepili ma ke kāhea ʻana i nā hana mai nā hale waihona puke waho a me ke komo ʻana i ka hoʻomanaʻo ma waho o ka JVM, me ka hoʻohana ʻole ʻana i ka JNI (Java Native Interface).
  • Ua hoʻohana ʻia ke kākoʻo no nā mea hoʻololi inoa ʻole a me ka hoʻohālikelike ʻana - ma kahi o nā ʻano hoʻololi pono ʻole akā pono i ke kelepona ʻana, hiki iā ʻoe ke kuhikuhi i ke ʻano "_". // was String pageName = hoʻololi (ʻaoʻao) { case GitHubIssuePage(var url, var content, var links, int issueNumber) -> “ISSUE #” + issueNumber; ... }; // i kēia manawa hiki iā ʻoe ke String pageName = hoʻololi (ʻaoʻao) { case GitHubIssuePage(_, _, _, int issueNumber) -> “ISSUE #” + issueNumber; };
  • Manaʻo ʻia kahi hoʻokō mua o ka Class-File API no ka paʻi ʻana, hana, a hoʻololi i nā faila papa Java. PapaFile cf = PapaFile.of(); ClassModel classModel = cf.parse(bytes); byte [] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> {no (ClassElement ce : classModel) {inā (!(ce instanceof MethodModel mm && mm.methodName().stringValue(). startsWith("debug"))) { classBuilder.with(ce);
  • Hāʻawi ka java utility i ka hiki ke holo i nā polokalamu Java, i hoʻolako ʻia ma ke ʻano o nā faila code a i ʻole nā ​​hale waihona puke i hoʻopaʻa ʻia, me ka ʻole o ka hoʻohui ʻana i kēia mau faila a me ka hoʻonohonoho ʻole ʻana i ka ʻōnaehana kūkulu. ʻO ka hiʻohiʻona hou ka mea maʻalahi i ka holo ʻana i nā polokalamu i hoʻokaʻawale ʻia ke code o nā papa like ʻole i nā faila ʻokoʻa. Prog.java: papa Prog { lehulehu static void main(String [] args) { Helper.run(); } } Helper.java: class Helper { static void run () { System.out.println("Aloha!"); } }

    No ka laʻana, no ka holo ʻana i kahi papahana me nā faila ʻelua "Prog.java" a me "Helper.java" ua lawa kēia manawa e holo "java Prog.java", e hōʻuluʻulu i ka papa Prog, e wehewehe i kahi kuhikuhi i ka papa Helper, ʻimi a hoʻohui i ka faila Helper a kāhea i ke ʻano kumu.

  • Hoʻohui ʻia ka lua o ka hoʻokō mua ʻana o nā String Templates, i hoʻokō ʻia me nā string literals a me nā poloka kikokikona. Hiki iā ʻoe ke hoʻohui i nā kikokikona me nā huaʻōlelo i helu ʻia a me nā ʻano like ʻole me ka hoʻohana ʻole ʻana i ka + operator. Hoʻololi ʻia nā ʻōlelo me ka hoʻohana ʻana i nā pani \{..}, a hiki ke hoʻopili ʻia nā mea lawelawe kūikawā e nānā i ka pololei o nā waiwai i hoʻololi ʻia. No ka laʻana, nānā ka ʻenekini SQL i nā waiwai i hoʻololi ʻia i loko o ka code SQL a hoʻihoʻi i kahi mea java.sql.Statement ma ke ʻano he mea hoʻopuka, aʻo ka mea hana JSON e nānā i ka pololei o nā pani JSON a hoʻihoʻi i kahi JsonNode. Huna nīnau = "KOHO * MAI ke kanaka p WHERE p." + waiwai + "="" + waiwai + "'"; // was Statement query = SQL.""" SELECT * FROM Person p WHERE p.\{property} = '\{value}'"""; // lilo
  • Ua hoʻohui ʻia kahi hiʻohiʻona ʻehiku o ka Vector API, e hāʻawi ana i nā hana no ka helu vector i hana ʻia me ka hoʻohana ʻana i nā kuhikuhi vector ma x86_64 a me AArch64 kaʻina hana a ʻae i nā hana e hoʻopili ʻia i nā helu he nui (SIMD). ʻAʻole like me nā hiki i hāʻawi ʻia i ka mea hoʻopili ʻo HotSpot JIT no ka auto-vectorization o nā hana scalar, hiki i ka API hou ke hiki ke hoʻomalu i ka vectorization no ka hoʻoili ʻana i ka ʻikepili like.
  • Ua hoʻohui ʻia kahi hoʻokō mua o ka API Stream i hoʻonui ʻia e kākoʻo ana i ka wehewehe ʻana i kāu mau hana kuʻuna ponoʻī, hiki ke kūpono i nā hihia inā ʻaʻole lawa nā hana waena i kūkulu ʻia no ka hoʻololi ʻana i ka ʻikepili i makemake ʻia. Hoʻopili ʻia nā mea lawelawe ʻōiwi me ka hoʻohana ʻana i ka hana waena hou ʻo Stream::gather(Gatherer), e hana ana i nā mea hoʻoheheʻe ma ke kau ʻana i kahi mea hoʻohana i kuhikuhi ʻia iā lākou. jshell> Stream.of(1,2,3,4,5,6,7,8,9).hui(windowFixed(3)).toList() $1 ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  • Ua noi ʻia kahi mana lua o ka API hoʻokolohua no Structured Concurrency no ka hoʻāʻo ʻana, e hoʻomaʻamaʻa i ka hoʻomohala ʻana i nā noi multi-threaded ma o ka hana ʻana i kekahi mau hana i hana ʻia ma nā loina like ʻole me he poloka hoʻokahi.
  • Hoʻohui ʻia ka lua o ka hoʻokō mua ʻana o nā papa i haʻi ʻole ʻia a me nā manawa i kapa ʻole ʻia o ke ʻano "kumu", hiki ke hoʻokuʻu i nā ʻōlelo hoʻolaha lehulehu/static, e hāʻawi ana i nā ʻōlelo hoʻopaʻapaʻa, a me nā hui ʻē aʻe e pili ana i kahi hoʻolaha papa. // was public class HelloWorld { public static void main(String[] args) { System.out.println("Aloha honua!"); } } // i kēia manawa hiki iā ʻoe ke kāpae i ka main() { System.out.println("Aloha, World!"); }
  • Hoʻohui ʻia ka lua o ka hoʻokō ʻana i nā Scoped Values, e ʻae ana i ka ʻikepili immutable e kaʻana like i nā pae a me ka ʻikepili i hoʻololi maikaʻi ʻia ma waena o nā kaula keiki (ua hoʻoili ʻia nā waiwai). Ke kūkulu ʻia nei nā Scoped Values ​​e hoʻololi i ka mīkini hoʻololi kūloko-local a ʻoi aku ka maikaʻi i ka wā e hoʻohana ai i nā helu nui loa o nā kaula virtual (mau tausani a i ʻole miliona mau kaula). ʻO ka ʻokoʻa nui ma waena o nā Scoped Values ​​a me nā ʻano hoʻololi pili-local ʻo ia ka mea i kākau mua ʻia i hoʻokahi manawa, ʻaʻole hiki ke hoʻololi ʻia i ka wā e hiki mai ana, a noho mau no ka lōʻihi o ka hoʻokō ʻana o ke kaula.
  • Ua hoʻomaikaʻi ka ʻohi ʻōpala Parallel i ka hana i ka wā e hana ai me ka nui o nā mea. Hiki i ka Optimization ke hiki i kekahi mau ho'āʻo me ka nui o nā mea e hōʻemi i ka lohi ma mua o ka hoʻomaka ʻana e ʻimi i kahi mea ma 20%.

Eia hou, hiki iā ʻoe ke hoʻomaopopo i ka paʻi ʻana o kahi mea hou i ka paepae no ka hana ʻana i nā noi me kahi kiʻi kiʻi JavaFX 22.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka