Hoʻokuʻu ʻia ʻo Java SE 20

Ma hope o ʻeono mahina o ka hoʻomohala ʻana, ua hoʻokuʻu ʻo Oracle iā Java SE 20 (Java Platform, Standard Edition 20), 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 20 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 20 (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 20 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 20 ma ke ʻano he hoʻokuʻu kākoʻo maʻamau a e hoʻomau i ka loaʻa ʻana o nā mea hou a hiki i ka hoʻokuʻu hou ʻana. Pono ka lālā Long Term Support (LTS) ʻo Java SE 17, e hoʻomau i ka loaʻa ʻana o nā mea hou a hiki i 2029. E hoʻomanaʻo mākou iā ʻoe e hoʻomaka ana me ka hoʻokuʻu ʻana o Java 10, ua hoʻololi ka papahana i kahi kaʻina hana 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 20:

  • Aia ke kākoʻo mua no nā Scoped Values, ka mea e hiki ai ke kaʻana like i ka ʻikepili immutable ma 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 hoʻomohala ʻ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 kūloko-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. class Server { ScopedValue hope loa CURRENT_USER = ScopedValue hou (); void serve(Noi noi, pane pane) { var level = (noi. isAuthorized()? ADMIN : GUEST); var mea hoʻohana = mea hoʻohana hou (pae); ScopedValue.where(CURRENT_USER, mea hoʻohana). holo (() -> Application.handle(noi, pane)); } } class DatabaseManager { DBConnection open() { var user = Server.CURRENT_USER.get(); inā (!user.canOpen()) kiola hou InvalidUserException(); hoʻihoʻi hou DDBConnection(...); } }
  • Ua hoʻohui ʻia ka lua o nā hiʻohiʻona moʻolelo, e hoʻonui ana i ka hiʻohiʻona hoʻohālikelike i hoʻokomo ʻia ma Java 16 e hoʻokaʻawale i nā waiwai o nā papa moʻolelo. No ka laʻana: hoʻopaʻa i Point(int x, int y) {} static void printSum(Object obj) { if (obj instanceof Point p) { int x = px(); int y = py(); System.out.println(x+y); } }
  • Ua hoʻohui ʻia ka hā o ka hoʻokō mua ʻana o ka hoʻohālikelike ʻana i nā ʻōlelo "switch", e ʻae ana i nā lepili "case" e hoʻohana ʻole i nā waiwai kikoʻī, akā nā hiʻohiʻona maʻalahi e uhi i nā ʻano waiwai i ka manawa hoʻokahi, no ka mea ma mua he mea pono e hoʻohana paʻakikī. nā kaulahao o nā huaʻōlelo "inā ... ʻē aʻe". static String formatterPatternSwitch(Object obj) { hoʻihoʻi hoʻololi (obj) { hihia Integer i -> String.format("int %d", i); hihia Long l -> String.format("long %d", l); hihia Pālua d -> String.format("pālua %f", d); hihia String s -> String.format("String %s", s); paʻamau -> o.toString(); }; }
  • Ua hoʻohui ʻia ka lua o ka hoʻokō mua ʻana o ka FFM (Foreign Function & Memory) API, kahi e hiki ai iā ʻoe ke hoʻonohonoho i ka launa pū ʻana o nā polokalamu Java me nā code waho a me nā ʻikepili ma o 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.
  • Ua hoʻohui ʻia kahi ʻike lua o nā milo virtual, ʻo ia nā loina māmā e maʻalahi i ka kākau ʻana a me ka mālama ʻana i nā noi multi-threaded kiʻekiʻe.
  • Hoʻohui ʻia kahi API hoʻokolohua lua no ka parallelism i kūkulu ʻia, e hoʻomaʻamaʻa i ka hoʻomohala ʻana o nā noi multi-threaded ma o ka mālama ʻana i nā hana he nui e holo ana ma nā pae like ʻole me he poloka hoʻokahi.
  • Ua hoʻohui ʻia ka ʻalima 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ā waiwai 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.

Source: opennet.ru

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