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

Ma hope o ʻeono mahina o ka hoʻomohala ʻana, Oracle hoʻokuʻu anuu ʻO Java SE 15 (Java Platform, Standard Edition 15), ua hoʻohana ʻia ka papahana OpenJDK open-source ma ke ʻano he hoʻokō kuhikuhi. Mālama ʻo Java SE 15 i ka hoʻohālikelike hope me nā hoʻokuʻu mua o ka platform Java; e hana nā papahana Java a pau i kākau mua ʻia me ka ʻole o nā loli i ka wā i hoʻokuʻu ʻia ma lalo o ka mana hou. Mākaukau-e-hoʻouka Java SE 15 kūkulu (JDK, JRE a me Server JRE) hoomakaukauia no Linux (x86_64), Windows a me macOS. Hoʻokumu ʻia ka hoʻokō kuhikuhi e ka papahana OpenJDK 15 Java he kumu hāmama 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.

Ua helu ʻia ʻo Java SE 15 ma ke ʻano he kākoʻo kākoʻo ākea a e hoʻomau ʻia e loaʻa nā mea hou a hiki i ka hoʻokuʻu hou ʻana. Pono ka lālā Long Term Support (LTS) ʻo Java SE 11, e hoʻomau i ka loaʻa ʻana o nā mea hou a hiki i 2026. E kākoʻo ʻia ka lālā LTS o Java 8 a hiki i Dekemaba 2020. Hoʻolālā ʻia ka hoʻokuʻu hou ʻana o LTS no Kepakemapa 2021. 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.

Mai nā mea hou 15 Java hiki mark:

  • Hoʻokomo ʻia kākoʻo no ka EdDSA (Edwards-Curve Digital Signature Algorithm) kikohoʻe hana algorithm RFC 8032). ʻAʻole hilinaʻi ka hoʻokō EdDSA i manaʻo ʻia ma nā kahua paʻa, pale ʻia mai nā hoʻouka ʻaoʻao ʻaoʻao (ua hoʻopaʻa ʻia ka manawa mau o nā helu a pau) a ʻoi aku ka wikiwiki o ka hana ma mua o ka hoʻokō ECDSA i kākau ʻia ma ka ʻōlelo C, me ka pae like o ka pale. No ka laʻana, hoʻohana ʻo EdDSA i kahi pihi elliptic me kahi kī 126-bit e hōʻike ana i ka hana like me ECDSA me kahi pihi elliptic secp256r1 a me kahi kī 128-bit.
  • Hoʻohui ʻia kākoʻo hoʻokolohua 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;

    ʻano papa i hoʻopaʻa ʻia i ka lehulehu
    ʻae iā com.example.polar.Circle,
    com.example.quad.Rectangle,
    com.example.quad.simple.Square {…}

  • Hoʻohui ʻia kākoʻo no nā papa huna ʻaʻole hiki ke hoʻohana pololei ʻia e ka bytecode o nā papa ʻē aʻe. ʻO ke kumu nui o nā papa huna e hoʻohana ʻia i nā frameworks e hoʻohua i nā papa i ka wā holo a hoʻohana ʻole iā lākou, ma o ka hopena. ʻO ia mau papa maʻamau ka palena o ke ola ola, no laila ʻaʻole kūpono ka mālama ʻana iā lākou no ke komo ʻana mai nā papa hana statically a alakaʻi wale i ka hoʻonui ʻana i ka hoʻomanaʻo. Hoʻopau pū nā papa huna i ka pono no ka API maʻamau sun.misc.Unsafe::defineAnonymousClass, i hoʻopaʻa ʻia no ka wehe ʻana i ka wā e hiki mai ana.
  • Ua hoʻopaʻa ʻia ka ZGC (Z Garbage Collector) ʻohi ʻōpala a ʻike ʻia ua mākaukau no ka hoʻohana ākea. Hoʻohana ʻo ZGC ma ke ʻano passive, hoʻemi i ka latency ma muli o ka hōʻiliʻili ʻōpala e like me ka hiki (ʻo ka manawa kū i ka wā e hoʻohana ai iā ZGC ʻaʻole i ʻoi aku ma mua o 10 ms.) a hiki ke hana me nā puʻu liʻiliʻi a me nā puʻu nui, mai nā haneli megabytes a i nā terabytes he nui.
  • Paʻa a loaʻa ka mākaukau no ka hoʻohana maʻamau
    ʻohi ʻōpala Shenandoah, e hana ana me nā hoʻomaha liʻiliʻi (Low-Pause-Time Garbage Collector). Ua hoʻomohala ʻia ʻo Shenandoah e Red Hat a kaulana ʻo ia no ka hoʻohana ʻana i kahi algorithm e hōʻemi ana i ka manawa kū i ka wā o ka ʻōpala ma o ka hoʻomaʻemaʻe ʻana e like me ka hoʻokō ʻana i nā noi Java. Hiki ke wānana ka nui o nā lohi i hoʻokomo ʻia e ka ʻōpala a ʻaʻole hilinaʻi i ka nui o ka puʻu, ʻo ia hoʻi. no nā puʻu o 200 MB a me 200 GB e like nā lohi (mai puka i waho ma mua o 50 ms a i ka manawa maʻamau i loko o 10 ms);

  • Ua paʻa a hoʻokomo ʻia ke kākoʻo i ka ʻōlelo nā poloka kikokikona - he ʻano hou o nā string literals e hiki ai iā ʻoe ke hoʻokomo i ka ʻikepili kikokikona multi-line ma ke code kumu me ka hoʻohana ʻole ʻana i ke ʻano e pakele ai a mālama i ka hoʻopono kikokikona kumu i loko o ka poloka. Hoʻopili ʻia ka poloka e ʻekolu kaha puʻupuʻu pālua.

    No ka laʻana, ma kahi o ke code

    Kaha html = " » +
    "\n\t" + " » +
    "\n\t\t" + " \"Aia mai ka Java 1!\" » +
    "\n\t" + " » +
    "\n" + " ";

    hiki iā ʻoe ke kuhikuhi:

    Kaha html = """


    »Java 1\
    aia maanei!

    """;

  • Hoʻolālā hou ʻia API no ka Legacy DatagramSocket. Ua hoʻololi ʻia nā hana kahiko o java.net.DatagramSocket a me java.net.MulticastSocket me kahi hoʻokō hou i maʻalahi i ka debug a mālama ʻia, a ua kūpono pū me nā kahawai virtual i kūkulu ʻia i loko o ka papahana. Loom. Inā ʻaʻole hiki ke hoʻohālikelike ʻia me ka code i loaʻa, ʻaʻole i wehe ʻia ka hoʻokō kahiko a hiki ke hoʻohana ʻia me ka koho jdk.net.usePlainDatagramSocketImpl.
  • Manaʻo ʻia ka hoʻokō hoʻokolohua lua hoʻolike like i loko o ka "instanceof" mea hoʻohana, e hiki ai iā ʻoe ke wehewehe koke i kahi loli kūloko e kiʻi i ka waiwai i nānā ʻia. No ka laʻana, hiki iā ʻoe ke kākau koke "inā (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}" me ka wehewehe ʻole ʻana i ka "String s = (String) obj".

    ʻO ia:

    inā (obj instanceof Group) {
    Pūʻulu hui = (Group)obj;
    var entries = group.getEntries();
    }

    I kēia manawa hiki iā ʻoe ke hana me ka ʻole o ka wehewehe ʻana "Group group = (Group) obj":

    inā (obj instanceof hui pūʻulu) {
    var entries = group.getEntries();
    }

  • Manaʻo ʻia hoʻokō hoʻokolohua lua o ka huaʻōlelo "mooolelo", ka mea e hāʻawi i kahi palapala paʻa no ka wehewehe ʻana i nā papa, e ʻae iā ʻoe e pale i ka wehewehe ʻana i nā ʻano haʻahaʻa haʻahaʻa like ʻole e like me ka like (), hashCode () a me toString () i nā hihia i mālama ʻia ka ʻikepili i nā kahua i loli ʻole ke ʻano. Ke hoʻohana ka papa i nā hoʻokō maʻamau o nā ʻano like (), hashCode () a me toString (), hiki iā ia ke hana me ka ʻole o kā lākou wehewehe kikoʻī:

    moʻolelo lehulehu BankTransaction(LocalDate date,
    huina pālua
    Hōʻike i ke kaula) {}

    E hoʻohui ʻokoʻa kēia ʻōlelo i ka hoʻokō ʻana o nā ʻano like (), hashCode () a me toString () me ka hoʻohui ʻana i nā ʻano hana hana a me ka getter.

  • Manaʻo ʻia ʻO ka ʻike lua o ka Foreign-Memory Access API, e ʻae ana i nā polokalamu Java e hoʻopaʻa paʻa i nā wahi hoʻomanaʻo ma waho o ka puʻu Java ma o ka hoʻopunipuni ʻana i nā abstractions MemorySegment, MemoryAddress, a me MemoryLayout hou.
  • Kinohi a hoʻopau i ka ʻenehana hoʻopaʻa ʻana i ka Biased Locking i hoʻohana ʻia ma ka HotSpot JVM e hōʻemi i ka laka ma luna. Ua nalowale kēia ʻenehana i kona pili ʻana i nā ʻōnaehana me nā ʻōlelo aʻoaʻo atomic i hāʻawi ʻia e nā CPU hou, a ua paʻakikī loa ka mālama ʻana ma muli o kona paʻakikī.
  • Hoʻolaha ʻia mīkini hana kahiko Hoʻoulu ʻia ʻo RMI, e wehe ʻia i ka wā e hiki mai ana. Hoʻomaopopo ʻia ua pau ka RMI Activation, ua hoʻokuʻu ʻia i ke ʻano o kahi koho ma Java 8 a aneane ʻaʻole hoʻohana ʻia i ka hana hou.
  • Holoi ʻia mīkini JavaScript Pākene, i hoʻopau ʻia ma Java SE 11.
  • Wehe ʻia nā awa no Solaris OS a me nā mea hana SPARC (Solaris/SPARC, Solaris/x64 a me Linux/SPARC). ʻO ka wehe ʻana i kēia mau awa e ʻae i ke kaiāulu e hoʻolalelale i ka hoʻomohala ʻana i nā hiʻohiʻona OpenJDK hou me ka pau ʻole o ka manawa e mālama ai i nā hiʻohiʻona kikoʻī o Solaris a me SPARC.

Source: opennet.ru

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