Ua hoʻokuʻu ʻia ʻo Java SE 24 a me OpenJDK 24

Ma hope o ʻeono mahina o ka hoʻomohala ʻana, ua hoʻokuʻu ʻo Oracle i ka Java SE 24 (Java Platform, Standard Edition 24), e hoʻohana ana i ka papahana OpenJDK open source e like me kāna hoʻokō kuhikuhi. Me ka wehe ʻole ʻana i kekahi mau hiʻohiʻona i hoʻopau ʻia, mālama ʻo Java SE 24 i ka hoʻohālikelike hope me nā hoʻokuʻu mua o ka platform Java-ʻo ka hapa nui o nā papahana Java i kākau mua ʻia e hoʻomau ʻia me ka hoʻololi ʻole ma lalo o ka mana hou. Loaʻa nā kūkulu mākaukau o Java SE 24 (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 SE 24 ka hoʻokō kuhikuhi ʻana he puna piha ma lalo o ka laikini GPLv2 me nā ʻokoʻa GNU ClassPath e ʻae ana i ka hoʻopili ikaika ʻana me nā huahana kalepa.

Hoʻokaʻawale ʻia ʻo Java SE 24 ma ke ʻano he kākoʻo kākoʻo maʻamau, me nā mea hou e hoʻokuʻu ʻia a hiki i ka hoʻokuʻu hou ʻana. ʻO ka lālā kākoʻo lōʻihi (LTS) pono ʻo Java SE 21 a i ʻole Java SE 17, e loaʻa i nā mea hou a hiki i 2031 a me 2029, i kēlā me kēia (loaʻa maʻamau a hiki i 2028 a me 2026). E hoʻomau ʻia ke kākoʻo lōʻihi no ka lālā Java SE 8 LTS a hiki i 2030, a e hoʻomau ʻia ʻo Java SE 11 a hiki i 2032. ʻO ka hoʻokuʻu hou aʻe o LTS ka hoʻokuʻu hāʻule o Java SE 25.

Ma waena o nā mea hou 24 i manaʻo ʻia ma Java SE:

  • Hoʻolālā ʻia kahi ʻano hana hoʻomohala hoʻokolohua o ka ʻohi ʻōpala Shenandoah, e hoʻokaʻawale kaʻawale i nā mea kahiko a i hana hou ʻia e hoʻomaikaʻi i ka pono o ka hoʻomaʻemaʻe ʻana i nā mea me ka pōkole o ke ola. Hāʻawi ke ʻano hou i ka hiki ke ʻike ʻia, hiki ke hoʻouka i nā ʻano like ʻole, a hoʻemi i ka hoʻohana ʻana i ka hoʻomanaʻo i ka wā o ka ʻohi ʻōpala. Manaʻo ka mea hoʻonohonoho Shenandoah e hōʻemi i ka manawa o ka hōʻiliʻili ʻōpala ma o ka hana ʻana i nā hana hou aʻe e like me ka hoʻokō ʻana i ka noi Java.
  • Hoʻokomo ka HotSpot JVM i ke kākoʻo hoʻokolohua no nā poʻomanaʻo mea paʻa, i hoʻemi ʻia ka nui mai 64 a 96 mau bits (64 a 12 bytes) ma nā ʻōnaehana 8-bit. ʻO ka hoʻemi ʻana i ka nui o nā poʻomanaʻo e hiki ai iā ʻoe ke hōʻemi i ka nui o ka puʻu a hoʻomaikaʻi i ka pono cache.
  • Ua maʻalahi ka ʻohi ʻōpala G1 i ka hoʻokō ʻana i nā mea pale e nānā i ke komo ʻana o kahi noi i ka hoʻomanaʻo. Ma ka mana hou, ua hoʻoneʻe ʻia nā hana hoʻonui pale i kahi pae hope o ka hōʻuluʻulu ʻana i ka C2 JIT. Hōʻike nā hōʻike e hiki i kēia ʻano hoʻololi ke hoʻemi i ka overhead o ka C2 JIT compiler e 10-20% ma muli o ka noi.
  • Hoʻohui ʻia kahi API no ka hoʻohana ʻana i nā hana derivation key cryptographic (KDF), e ʻae ai i ka hana ʻana i nā kī hou o ka lōʻihi i koi ʻia e pili ana i kahi kī huna (no ka laʻana, ka ʻōlelo huna) a me kahi pūʻulu ʻikepili. Aia ʻo KDF API i ke kūlana ʻike.
  • Hoʻohui i ka hiki ke hoʻouka mua (Ahead-of-Time) a hoʻopili i nā papa. Hiki i ka hoʻololi ke hoʻomaka wikiwiki i ka HotSpot JVM ma o ka hāʻawi ʻana i nā papa i hoʻohana ʻia i ka noi i hoʻouka ʻia a hoʻopili ʻia. I ka hoʻomaka mua ʻana o ka noi, ua hoʻokuʻu ʻia ka mokuʻāina o nā papa a pau i ka cache a hoʻohana ʻia e wikiwiki i ka hoʻouka ʻana ma nā hoʻokuʻu ʻana.
  • Pākuʻi Class-File API no ka parsing, 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 ka (ClassElement ce : classModel) {inā (!

  • Ua hoʻohui ʻia kahi Stream Stream API e kākoʻo ana i ka wehewehe ʻana i kāu mau hana waena, hiki ke hoʻohana 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 hana maʻamau me ka hoʻohana ʻana i kahi hana waena hou Stream::gather(Gatherer), nāna e hoʻoponopono i nā mea o ke kahawai 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)
  • Hāʻawi ʻia kahi hoʻokō mua ʻehā o Scoped Values, e ʻae ana i ka kaʻana ʻana i ka ʻikepili immutable ma waena o nā kaula a me ka hoʻololi ʻana o ka ʻikepili ma waena o nā pae keiki (ua hoʻoili ʻia nā waiwai). Ke ulu 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 me nā miliona o nā kaula). ʻO ka ʻokoʻa nui ma waena o Scoped Values ​​a me thread-local variables ʻo ia ka mea i kākau mua ʻia i hoʻokahi manawa, ʻaʻole hiki ke hoʻololi ʻia ma hope, a noho mau no ka lōʻihi o ka hoʻokō ʻana o ke kaula.
  • Ua hōʻano hou ʻia nā ʻenekini hoʻohālikelike e hoʻokomo i ke kākoʻo mua no ka hoʻohana ʻana i nā ʻano primitive (int, byte, char, a me nā ʻano kumu kumu ʻole) i nā ʻano template āpau, ka instanceof operator, a me nā poloka hoʻololi. hoʻololi (x.getStatus ()) { hihia 0 -> "maikaʻi"; hihia 1 -> "'ōlelo aʻo"; hihia 2 -> «hewa»; case int i -> "kūlana ʻike ʻole: " + i; } inā (i instanceof byte b) { … b … }
  • ʻO kēia ka helu ʻeiwa 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 o nā kaʻina x86_64 a me AArch64 a ʻae i nā hana e hoʻopili ʻia i nā waiwai he nui i ka manawa hoʻokahi (SIMD). ʻAʻole e like me ka HotSpot JIT compiler's auto-vectorization o nā hana scalar, hāʻawi ka API hou i ka hiki ke hoʻomalu pono i ka vectorization no ka hoʻoili ʻikepili like.
  • Hoʻokō ʻia ke kākoʻo no ka hoʻonohonoho ʻana i nā loina virtual me ka ʻole o ka hoʻopaʻa ʻana iā lākou i nā pae kikoʻī. Hoʻokuʻu ʻia nā threads virtual i kahi ʻano i hoʻonohonoho ʻia a i ʻole ka ʻōlelo i loko o kahi mokuʻāina i hoʻokuʻu ʻia i kā lākou pae honua, e ʻae ana i nā thread virtual ʻē aʻe e hoʻohana iā ia, me ka hoʻonui nui ʻana i ka nui o nā thread virtual i loaʻa a hoʻomaikaʻi i ka scalability o nā noi e hoʻohana ana i ka multithreading.
  • Hoʻohui ʻia ke kolu o nā kikoʻī o kahi hiʻohiʻona e hiki ai i nā mea kūkulu ke kuhikuhi i nā hōʻike ma mua o ke kāhea ʻana i ka super(…) e kāhea pololei i kahi mea hana papa makua mai kahi mea hana papa i loaʻa, inā ʻaʻole pili kēlā mau ʻōlelo i ka mea i hana ʻia e ka mea hana. papa Mawaho { void hello() { System.out.println(«Aloha»); } papa Iloko { Inner() { aloha(); super(); } } }
  • Hoʻohana ka jlink utility i ke kākoʻo no ka hana ʻana i nā kiʻi holo-manawa me ka ʻole o ka hoʻohana ʻana i nā faila JMOD, e hiki ai ke hōʻemi i ka nui o ka JDK ma kahi o 25%.
  • Hoʻohui ʻia kahi ʻāpana ʻelua o ka hoʻohana ʻana i hoʻokahi ʻōlelo "import module M" e hoʻokomo i nā pūʻolo āpau i lawe ʻia e ka module i ʻōlelo ʻia i ka manawa hoʻokahi. ʻOi aku ka maʻalahi o ka hoʻololi ʻana i ka hoʻohana hou ʻana i nā hale waihona puke modular ma o ka ʻae ʻana i nā hale waihona puke a me nā papa e hoʻokomo ʻia me ka ʻole e kuhikuhi i ko lākou wahi i ka hierarchy pūʻolo. No ka laʻana, ʻo ka wehewehe ʻana i ka "module import java.base" e hoʻokomo i nā pūʻolo 54 a pau i hoʻokomo ʻia i loko o ka module java.base, kahi i ʻōlelo ʻia ma mua ("import java.io.*", "import java.util.*", etc.).
  • Hoʻohui i ka hā 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 "nui", hiki ke hana me ka ʻole o ka lehulehu/static declarations, e hāʻawi ana i nā ʻano hoʻopaʻapaʻa, a me nā hui ʻē aʻe e pili ana i ka 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!»); }
  • ʻO ka papa ʻehā o ka Structured Concurrency API, e hoʻomaʻamaʻa ana i ka hoʻomohala ʻana o nā noi multithreaded ma o ka mālama ʻana i nā hana he nui e holo ana ma nā pae like ʻole me kahi ʻāpana hoʻokahi, ua loaʻa i kēia manawa no ka hoʻāʻo.
  • Kākoʻo nā KeyPairGenerator, Signature, a me KeyFactory API i kēia manawa i ka ML-KEM (CRYSTALS-Kyber) a me ML-DSA (CRYSTALS-Dilithium) algorithms, i hoʻopaʻa ʻia e ka US National Institute of Standards and Technology (NIST) a kūʻē i ka hana ʻino ma ke kamepiula quantum. Ke hoʻohana nei kēia mau algorithms i nā ʻano cryptographic e pili ana i ka hoʻoponopono ʻana i nā pilikia theory theory, ʻo ka manawa hoʻonā e like me nā kamepiula maʻamau a me quantum.
  • Ma ka ZGC'ōpala ohi, kākoʻo no ka non-generative mode o ka hana, ka mea i ole hoʻokaʻawale i ka hana 'ana o "kahiko" a me ka "'ōpiopio" mea, ua wehe 'ia. E hoʻomaka ana me Java SE 23, ʻo ke ʻano generative a ZGC ka paʻamau.
  • Hoʻohui ʻia nā ʻōlelo aʻo e pili ana i ka hoʻohana ʻana i ka JNI (Java Native Interface) a me FFM (Foreign Function & Memory) API no ka hoʻomākaukau ʻana i nā mea hoʻomohala no ka ʻae ʻia ʻana i ka ʻikepili API ma muli o ka hoʻokomo ʻia ʻana o kahi ʻano kūpaʻa i kahi hoʻokuʻu e hiki mai ana e pāpā ana i ka launa pū ʻana me ka code maoli.
  • Hoʻohana ʻia ka puka hoʻolaha i ka wā e hoʻohana ai i nā ala komo hoʻomanaʻo waho (ma waho o ka JVM) i hāʻawi ʻia e ka papa sun.misc.Unsafe. No ke komo ʻana i ka hoʻomanaʻo ʻana i waho-heap a launa pū me nā code waho, pono e hoʻohana i ka VarHandle API. Ma ka hoʻokuʻu mua, ua hoʻopau ʻia ke kākoʻo no sun.misc.Unsafe.
  • Luna Hoʻomalu Hoʻopale, ua nalowale kona pili a ʻaʻole i koi hou ʻia ma hope o ka pau ʻana o ke kākoʻo plugin browser. Ua hoʻopau ʻia ʻo Security Manager ma Java 17. Hoʻolālā ʻia ka code Security Manager e hoʻopau loa ʻia i kahi hoʻokuʻu e hiki mai ana.
  • Wehe ʻia ke code e kākoʻo i ka paepae Windows OS 32-bit ma nā ʻōnaehana x86. Ua hoʻopau ʻia ke awa Java no nā ʻōnaehana 32-bit x86 a ua hoʻonohonoho ʻia no ka wehe ʻana (e hoʻokuʻu ʻia ke kākoʻo no Linux ma nā ʻōnaehana 32-bit x86).

Eia kekahi, hiki iā mākou 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 24 a me kahi hoʻokuʻu hou o ka mīkini virtual universal GraalVM, e kākoʻo ana i ka holo ʻana i nā noi ma JavaScript (Node.js), Python, Ruby, R, nā ʻōlelo no ka JVM (Java, Scala, Clojure, Kotlin) a me nā ʻōlelo no ka LLVM bitcode hiki ke hana ʻia iā LLVM bitcode. Ma waho aʻe o ke kākoʻo ʻana iā JDK 24, ʻo ka mana hou o GraalVM e loaʻa i nā optimizations no nā hana aʻo mīkini, hoʻomaikaʻi i ke kākoʻo no ka hōʻuluʻulu ʻana i ka Java bytecode i loko o ka mīkini code, a me kahi mīkini SkipFlow e hōʻemi i ka nui o nā faila hiki ke hoʻokō a hōʻemi i ka manawa hoʻohui.

Source: opennet.ru

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