Java SE 15 tuku

I muri i nga marama e ono o te whanaketanga, Oracle i tukuna tūāpapa JavaSE 15 (Java Platform, Paerewa Putanga 15), ka whakamahia te kaupapa OpenJDK tuwhera-puna hei whakatinanatanga tohutoro. Ka mau tonu a Java SE 15 i te hototahi whakamuri me nga putanga o mua o te papaahi Java; ko nga kaupapa Java katoa i tuhia i mua ka mahi kaore he huringa ka whakahaerehia i raro i te putanga hou. Kua reri ki te whakauru i nga hanganga Java SE 15 (JDK, JRE me Server JRE) kua rite mo Linux (x86_64), Windows me macOS. Ko te whakatinanatanga tohutoro i whakawhanakehia e te kaupapa OpenJDK Java 15 he puna tuwhera katoa i raro i te raihana GPLv2, me nga tuunga a GNU ClassPath ka taea te hono hihiri me nga hua arumoni.

Ko te Java SE 15 kua whakarōpūhia hei tuku tautoko whanui me te whiwhi tonu i nga whakahoutanga tae noa ki te tukunga e whai ake nei. Ko Java SE 11 te peka Tautoko Roa (LTS), ka whiwhi tonu i nga whakahoutanga tae noa ki te tau 2026. Ko te peka LTS o mua o Java 8 ka tautokohia tae noa ki Hakihea 2020. Ko te tukunga LTS e whai ake nei kua whakaritea mo Mahuru 2021. Me whakamahara koe ki a koe i timata mai i te tukunga o Java 10, ka huri te kaupapa ki te tukanga whanaketanga hou, e kii ana i te huringa poto mo te hanganga o nga putanga hou. Inaianei kua whakawhanakehia nga mahi hou i roto i tetahi peka matua kua whakahoutia tonu, kei roto ko nga huringa kua oti te hanga me nga manga ka peka ia ono marama ki te whakapumau i nga putanga hou.

Tuhinga ka whai mai nga mahi auaha Java 15 taea Mark:

  • Hanga-i roto te tautoko mo te EdDSA (Edwards-Curve Digital Signature Algorithm) hangahanga waitohu mamati algorithm RFC 8032). Ko te whakatinanatanga EdDSA e whakaarohia ana kaore i te whakawhirinaki ki nga papaaa taputapu, ka tiakina mai i nga whakaeke taha-taha (ka whakarite te wa tonu o nga tatauranga katoa) me te tere ake o te mahi i te whakatinanatanga o te ECDSA kua tuhia ki te reo C, me te taumata whakamarumaru kotahi. Hei tauira, ko te EdDSA e whakamahi ana i te pihi porotītaha me te kī 126-bit e whakaatu ana i te mahi rite ki te ECDSA me te anau elliptic secp256r1 me te kī 128-bit.
  • Kua tapirihia tautoko whakamatautau mo nga karaehe hiri me nga atanga, kaore e taea te whakamahi e etahi atu karaehe me nga atanga ki te tuku iho, ki te whakaroa, ki te whakakore ranei i te whakatinanatanga. Ko nga karaehe hiri ano he huarahi korero nui ake hei aukati i te whakamahinga o te karaehe nui atu i nga whakahuri uru, i runga i te whakarārangitanga o nga karaehe iti e whakaaetia ana mo te toronga.

    mōkihi com.example.geometry;

    Te ahua o te karaehe hiiri
    whakaae com.example.polar.Circle,
    com.example.quad.Rectangle,
    com.example.quad.simple.Tapawha {…}

  • Kua tapirihia tautoko mo nga karaehe huna e kore e taea te whakamahi tika e te bytecode o etahi atu akomanga. Ko te kaupapa matua o nga karaehe huna ko te whakamahi i roto i nga anga e whakaputa hihiri ana i nga karaehe i te wa whakahaere me te whakamahi autaki, ma whakaata. He iti noa te huringa ora o aua momo karaehe, no reira ko te pupuri kia uru mai i nga karaehe i hangaia i te ahua karekau e tika ana ka piki ake te kai mahara. Ka whakakorehia ano e nga karaehe huna te hiahia mo te API kore-paerewa sun.misc.Unsafe::defineAnonymousClass, kua whakaritea mo te tango a muri ake nei.
  • Ko te kaikohi paru ZGC (Z Garbage Collector) kua whakapumautia, kua mohio kua rite mo te whakamahi whanui. Ka mahi a ZGC i roto i te aratau hāngū, ka whakaiti i te roanga na te kohinga para i te mea ka taea (te wa o te waahi ka whakamahi i te ZGC kaua e neke ake i te 10 ms.) ka taea te mahi me nga puranga iti me nga puranga nui, mai i te maha rau megabytes ki te maha terabytes.
  • Kua tau, kua rite mo te whakamahi whanui
    kaikohi paru Shenandoah, e mahi ana me te iti o nga okiokinga (Kaohikohi Parapara-Tae-Tae-Tae). I whakawhanakehia a Shenandoah e Red Hat, he mea rongonui mo tana whakamahi i te algorithm e whakaiti ana i te wa o te waahi i te wa e kohikohi ana i nga otaota ma te whakahaere i te horoi i te taha o te mahi o nga tono Java. Ko te rahi o nga whakaroa i tukuna mai e te kaikohi paru ka matapaehia, kaore i te whakawhirinaki ki te rahi o te puranga, ara. mo nga puranga o te 200 MB me te 200 GB ka rite tonu nga whakaroa (kaua e puta ki waho i tua atu i te 50 ms me te nuinga o te waa i roto i te 10 ms);

  • Kua tau te tautoko me te whakauru ki te reo poraka kuputuhi - he ahua hou o nga reta aho e taea ai e koe te whakauru i nga raraunga kuputuhi raina-maha ki te waehere puna me te kore e whakamahi i te ahua o te mawhiti me te pupuri i te whakatakotoranga kuputuhi taketake i roto i te poraka. Ka anga te poraka e toru nga korukī rua.

    Hei tauira, hei utu mo te waehere

    Aho html = " »+
    "\n\t" + " »+
    "\n\t\t" + " \"Kei konei a Java 1!\" »+
    "\n\t" + " »+
    "\n" + " ";

    ka taea e koe te tohu:

    String html = """


    »Java 1\
    kei konei!

    """;

  • I hoahoa ano API Tukutuku DatagramSocket. Ko nga whakatinanatanga tawhito o java.net.DatagramSocket me java.net.MulticastSocket kua whakakapihia ki te whakatinanatanga hou he maamaa ake ki te patuiro me te pupuri, he hototahi hoki ki nga awa mariko i whakawhanakehia i roto i te kaupapa Kae. Ki te kore e hototahi ki te waehere o naianei, kaore i tangohia te whakatinanatanga tawhito ka taea te whakamahi ma te whakamahi i te kōwhiringa jdk.net.usePlainDatagramSocketImpl.
  • Ko te whakatinanatanga whakamatautau tuarua i whakaarohia whakaōrite tauira i roto i te kaiwhakahaere "instanceof", ka taea e koe te tautuhi tonu i tetahi taurangi rohe ki te uru atu ki te uara kua tirohia. Hei tauira, ka taea e koe te tuhi tonu “mehemea (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}” me te kore e tino tautuhia “String s = (String) obj”.

    Ko:

    if (obj instanceof Group) {
    Rōpū rōpū = (Rōpū)obj;
    var tāurunga = group.getEntries();
    }

    Inaianei ka taea e koe te mahi me te kore te whakamaramatanga "Rōpū Rōpū = (Rōpū) obj":

    if (obj instanceof Rōpū Rōpū) {
    var tāurunga = group.getEntries();
    }

  • Ka whakaarohia whakatinanatanga whakamatautau tuarua o te kupu matua "record", e whakarato ana i te puka kiato mo te tautuhi i nga karaehe, ka taea e koe te karo ki te tautuhi i nga tikanga taumata-iti penei i te rite(), hashCode() me toString() i roto i nga keehi ka penapena nga raraunga ki nga mara kaore e rereke ana te whanonga. Ina whakamahi ana te karaehe i nga whakatinanatanga paerewa o nga tikanga rite(), hashCode() me toString(), ka taea te mahi me te kore he whakamaramatanga marama:

    rekoata a te iwi mo te BankTransaction(Rā rohe,
    moni rua
    Whakaahuatanga aho) {}

    Ma tenei whakapuakanga ka taapiri aunoa i nga whakatinanatanga o nga tikanga rite(), hashCode() me toString() hei taapiri atu ki nga tikanga hanga me te tiki.

  • Ka whakaarohia he arokite tuarua mo te API Uru-Mahara-Tahi, ka taea e nga tono Java te uru haumaru me te whai hua ki nga rohe mahara kei waho o te puranga Java ma te raweke i nga tangohanga hou o MemorySegment, MemoryAddress, me MemoryLayout.
  • Kua haua me te whakakore i te tikanga arotautanga Maukati Takawaenga i whakamahia i te HotSpot JVM hei whakaiti i te maukati i runga ake. Kua ngaro te whai take o tenei tikanga ki runga i nga punaha me nga tohutohu ngota e whakaratohia ana e nga PTM hou, a he kaha rawa te mahi ki te pupuri na te mea uaua.
  • Kua panuitia tikanga tawhito RMI Whakahohenga, ka tangohia i roto i te tukunga a meake nei. E tohuhia ana ko te RMI Activation he tawhito, kua tukuna ki te waahanga o te waahanga i roto i te Java 8 me te kore rawa e whakamahia i roto i nga mahi hou.
  • Kua mukua miihini JavaScript Nashorn, i whakakorehia i Java SE 11.
  • Kua tangohia tauranga mo Solaris OS me SPARC pūtukatuka (Solaris/SPARC, Solaris/x64 me Linux/SPARC). Ko te tango i enei tauranga ka taea e te hapori te whakatere i te whanaketanga o nga ahuatanga OpenJDK hou me te kore e moumou taima ki te pupuri i nga ahuatanga motuhake o Solaris- me SPARC.

Source: opennet.ru

Tāpiri i te kōrero