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

Ma hope o ʻeono mahina o ka hoʻomohala ʻana, ua hoʻokuʻu ʻo Oracle iā Java SE 17 (Java Platform, Standard Edition 17), 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 17 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 17 (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 17 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 17 ma ke ʻano he Long Term Support (LTS), e hoʻomau i ka loaʻa ʻana o nā mea hou a hiki i 2029. Ua hoʻopau ʻia nā mea hou no ka Java 16 milestone mua. E kākoʻo ʻia ka lālā LTS o Java 11 a hiki i 2026. Hoʻolālā ʻia ka hoʻokuʻu hou ʻana o LTS no Kepakemapa 2024. 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 17:

  • Manaʻo ʻia kahi hoʻokolohua hoʻokolohua o ka hoʻohālikelike ʻana i nā ʻōlelo "hoʻololi", e ʻae ai i ka hoʻohana ʻana i nā waiwai kikoʻī ʻole i nā lepili "case", akā nā hiʻohiʻona maʻalahi e uhi ana i kahi ʻano o nā 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". Eia kekahi, hiki i ka "switch" ke mālama i nā waiwai NULL. Mea o = 123L; Hoʻopili ʻia ke kaula = hoʻololi (o) { case 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(); };
  • Kākoʻo kūpaʻa ʻia no nā papa i hoʻopaʻa ʻia a me nā pilina, ʻaʻole hiki ke hoʻohana ʻia e nā papa ʻē aʻe a me nā pilina e hoʻoilina, hoʻonui, a i ʻole e hoʻokō i ka hoʻokō. Hāʻawi nā papa i hoʻopaʻa ʻia i kahi ala ʻoi aku ka hoʻolaha ʻana i ka hoʻohana ʻana i kahi superclass ma mua o nā mea hoʻololi komo, e pili ana i ka papa inoa ʻana i nā subclasses i ʻae ʻia no ka hoʻonui. pūʻolo com.example.geometry; ʻAe ʻia ka papa i hoʻopaʻa ʻia e ka lehulehu com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {…}
  • Manaʻo ʻia kahi ʻike lua 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 ka manawa like 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.
  • Hoʻohui ʻia kahi ʻike o ka Foreign Function & Memory API, e hiki ai i nā noi ke launa pū me nā code a me nā ʻikepili ma waho o ka manawa holo Java. Hāʻawi ka API hou iā ʻoe e kāhea maikaʻi i nā hana JVM ʻole a komo i ka hoʻomanaʻo hoʻomanaʻo ʻole JVM. No ka laʻana, hiki iā ʻoe ke kāhea i nā hana mai nā hale waihona puke like ʻole a komo i ka ʻikepili kaʻina hana me ka hoʻohana ʻole ʻana iā JNI.
  • Ua hoʻololi ʻia ka ʻenekini hoʻololi macOS e hoʻohana ana i ka Java 2D API, a ʻo ia hoʻi ka mana o ka Swing API, ua hoʻololi ʻia e hoʻohana i ka Metal graphics API. Ke hoʻohana mau nei ka paepae macOS i ka OpenGL ma ke ʻano paʻamau, a ʻo ka ʻae ʻana i ke kākoʻo Metal e pono ai ke hoʻonohonoho "-Dsun.java2d.metal=true" a ma ka liʻiliʻi e holo ana i ka macOS 10.14.x.
  • Hoʻohui ʻia kahi awa no ka platform macOS/AArch64 (nā kamepiula Apple e pili ana i nā ʻāpana Apple M1 hou). ʻO kahi hiʻohiʻona kūikawā o ke awa ke kākoʻo no ka W^X (Write XOR Execute) ka mīkini pale hoʻomanaʻo, kahi hiki ʻole ke komo i nā ʻaoʻao hoʻomanaʻo no ke kākau ʻana a me ka hoʻokō. (hiki ke hoʻokō ʻia ke code ma hope o ka pau ʻana o ke kākau ʻana, a hiki ke kākau ʻia i kahi ʻaoʻao hoʻomanaʻo ma hope o ka pau ʻana o ka hoʻokō ʻana).
  • Hoʻihoʻi ʻia i ka hoʻohana ʻana i nā semantics strictfp wale nō no nā ʻōlelo kiko lana. Ua hoʻopau ʻia ke kākoʻo no nā semantics "paʻamau", i loaʻa mai ka hoʻokuʻu ʻia ʻana o Java 1.2, me ka hoʻomaʻamaʻa ʻana no ka hana ʻana i nā ʻōnaehana me nā coprocessors makemakika x87 kahiko loa (ma hope o ka hiki ʻana mai o nā ʻōlelo aʻoaʻo SSE2, ua nalowale ka pono o nā semantics hou).
  • Ua hoʻokō ʻia nā ʻano hoʻopili hou i nā mea hana helu pseudorandom, a ua hoʻokō ʻia nā algorithms hou no ka hanauna maikaʻi o nā helu random. Hāʻawi ʻia nā noi i ka manawa e koho ai i kahi algorithm no ka hana ʻana i nā helu pseudorandom. Hoʻomaikaʻi i ke kākoʻo no ka hoʻokumu ʻana i nā kahawai mea ʻole.
  • Hoʻopaʻa paʻa ʻia ka hoʻopili paʻa ʻana o nā JDK kūloko āpau, koe naʻe nā API koʻikoʻi e like me sun.misc.Unsafe. Hoʻopaʻa ʻia nā poloka encapsulation i nā hoʻāʻo mai ke code e komo i nā papa kūloko, nā ʻano, a me nā kahua. Ma mua, hiki ke hoʻopau ʻia ke ʻano encapsulation koʻikoʻi me ka hoʻohana ʻana i ke koho "--illegal-access=permit", akā ua hoʻopau ʻia kēia. Pono e wehewehe pono nā noi e koi ana i ke komo ʻana i nā papa kūloko, nā ʻano, a me nā māla me ka hoʻohana ʻana i ke koho --add-opens a i ʻole ka hoʻohui Add-Opens i ka faila hōʻike.
  • Hāʻawi ʻia nā noi i ka hiki ke wehewehe i nā kānana deserialization ʻikepili, hiki ke ʻike i ka pōʻaiapili a koho ikaika ʻia ma muli o nā hana deserialization kikoʻī. ʻO nā kānana i kuhikuhi ʻia e pili ana i ka mīkini virtual holoʻokoʻa (JVM-ākea), ʻo ia hoʻi. uhi ʻaʻole wale i ka noi ponoʻī, akā i nā hale waihona puke ʻekolu i hoʻohana ʻia i ka noi.
  • Ua hoʻohui ʻo Swing i ke ʻano javax.swing.filechooser.FileSystemView.getSystemIcon e hoʻouka i nā kiʻi nui e hoʻomaikaʻi i ka UI ma nā pale DPI kiʻekiʻe.
  • Hāʻawi ka java.net.DatagramSocket API i ke kākoʻo no ka hoʻopili ʻana i nā pūʻulu Multicast me ka ʻole o kahi API java.net.MulticastSocket ʻokoʻa.
  • Ua hoʻomaikaʻi ʻia ka pono IGV (Ideal Graph Visualizer), e hāʻawi ana i ka ʻike pili ʻana i ka hōʻike ʻana i nā code intermediate ma ka HotSpot VM C2 JIT compiler.
  • Ma JavaDoc, ma ka hoʻohālikelike me ka javac compiler, i ka wā i hoʻopuka ʻia ai kahi hewa, ua hōʻike ʻia ka helu o ka laina pilikia i ka faila kumu a me kahi o ka hewa.
  • Hoʻohui ʻia ka waiwai native.encoding, e hōʻike ana i ka inoa o ka hoʻopili ʻana i ke ʻano o ka ʻōnaehana (UTF-8, koi8-r, cp1251, etc.).
  • Ua hoʻohui ʻia ka interface java.time.InstantSource, e ʻae ana i ka hoʻoponopono ʻana i ka manawa me ka ʻole o ka kuhikuhi ʻana i kahi palena manawa.
  • Hoʻohui ʻia ʻo java.util.HexFormat API no ka hoʻololi ʻana i ka hōʻike hexadecimal a me ka hope.
  • Ua hoʻohui ʻia kahi ʻano blackhole i ka compiler, kahi e hoʻopau ai i nā hana hoʻopau make-code, hiki ke hoʻohana ʻia i ka wā e hana ai i nā hoʻokolohua hana.
  • Hoʻohui ʻia "-Xlog: async" koho i ka Runtime e hoʻopaʻa i nā lāʻau ma ke ʻano asynchronous.
  • Ke hoʻokumu nei i nā pilina paʻa, hoʻohana ʻia ʻo TLS 1.3 ma ka paʻamau (ua hoʻohana ʻia ʻo TLS 1.2 ma mua).
  • ʻO ka Applet API i haʻi mua ʻia (java.applet.Applet*, javax.swing.JApplet), i hoʻohana ʻia no ka holo ʻana i nā polokalamu Java ma ka polokalamu kele pūnaewele, ua hoʻoneʻe ʻia i ke ʻano o ka mea i hoʻopaʻa ʻia no ka wehe ʻana (nalo ka pili ma hope o ka pau ʻana o ke kākoʻo. no ka polokalamu Java no nā polokalamu kele pūnaewele).
  • ʻO ka Luna Hoʻomalu, ka mea i nalowale i kona pili a huli ʻia ʻaʻole i koi ʻia ma hope o ka pau ʻana o ke kākoʻo no ka polokalamu kele pūnaewele, ua hoʻoneʻe ʻia i ka māhele o nā mea i hoʻonohonoho ʻia no ka wehe ʻana.
  • Ua hoʻoneʻe ʻia ka mīkini RMI Activation, kahi mea kahiko, hoʻihoʻi ʻia i ke ʻano o kahi koho ma Java 8 a aneane ʻaʻole hoʻohana ʻia i ka hana hou.
  • He mea hōʻuluʻulu hoʻokolohua e kākoʻo ana i ka JIT (i ka manawa wale nō) no ka hōʻuluʻulu ikaika ʻana o ka code Java no HotSpot JVM, a me ke ʻano o ka hoʻohui anticipatory (AOT, ma mua o ka manawa) o nā papa i ka helu mīkini ma mua o ka hoʻomaka ʻana i ka mīkini virtual. , ua wehe ʻia mai ka SDK. Ua kākau ʻia ka mea hōʻuluʻulu ma Java a ma muli o ka hana o ka papahana Graal. Hoʻomaopopo ʻia ʻo ka mālama ʻana i ka compiler e koi i ka nui o ka hana, ʻaʻole i ʻāpono ʻia inā ʻaʻohe koi mai nā mea hoʻomohala.

Source: opennet.ru

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