Java SE 16 tuku

I muri i nga marama e ono o te whanaketanga, ka tukuna e Oracle a Java SE 16 (Java Platform, Standard Edition 16), e whakamahi ana i te kaupapa OpenJDK hei whakatinanatanga tohutoro. Ka mau tonu a Java SE 16 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 whakarewahia i raro i te putanga hou. Kua reri te hanga o Java SE 16 (JDK, JRE me Server JRE) kua rite mo Linux (x86_64, AArch64), Windows me macOS. I whakawhanakehia e te kaupapa OpenJDK, ko te whakatinanatanga tohutoro Java 16 he puna tuwhera katoa i raro i te raihana GPLv2, me nga tuunga GNU ClassPath e tuku ana i te hono hihiri me nga hua arumoni.

Ko te Java SE 16 kua whakarōpūhia hei tuku tautoko whanui ka 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 tukunga LTS e whai ake nei kua whakaritea mo Mahuru 2021. Me whakamahara mai ki a koe i timata mai i te tukunga o Java 10, ka huri te kaupapa ki te tukanga whanaketanga hou, e kii ana he 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.

Hei whakarite mo te tukunga hou, kua neke te whakawhanaketanga mai i te punaha whakahaere putanga Mercurial ki Git me te papaaho whanaketanga mahi tahi a GitHub. Ko te hekenga e tika ana kia pai ake te mahi o nga mahi putunga, te whakapiki i te pai o te rokiroki, te uru ki nga huringa puta noa i te hitori o te kaupapa, te whakapai ake i te tautoko mo te arotake waehere, ka taea e nga API te whakaaunoa i nga rerenga mahi. I tua atu, ko te whakamahinga o Git me GitHub ka pai ake te kaupapa ki te hunga timata me nga kaihanga kua waia ki a Git.

Ko nga ahuatanga hou i roto i te Java 16 ko:

  • Kua taapirihia te kōwae whakamatautau jdk.incubator.vector me te whakatinanatanga o te Vector API, e whakarato ana i nga mahi mo nga tatauranga vector e mahia ana ma te whakamahi i nga tohutohu vector i runga i te x86_64 me te tukatuka AArch64 me te tuku i nga mahi kia whakamahia i te wa kotahi ki nga uara maha (SIMD). He rereke ki nga kaha e whakaratohia ana i roto i te Kaihanga JIT HotSpot mo te whakangao-aunoa o nga mahi scalar, ma te API hou ka taea e koe te whakahaere i te vectorization mo te tukatuka raraunga whakarara.
  • Ko te waehere JDK me te VM HotSpot kua tuhia ki te C++ ka whakaaetia ki te whakamahi i nga ahuatanga i whakauruhia ki te C++ 14. I mua, i whakaaetia nga paerewa C++ 98/03.
  • Ko te ZGC (Z Garbage Collector), e mahi ana i roto i te aratau hāngū me te whakaiti i nga whakaroa na te kohinga para i te mea ka taea, kua taapirihia te kaha ki te tukatuka i nga puranga miro i roto i te whakarara me te kore e whakaroa i nga miro tono. Ko te ZGC anake he mahi e hiahia ana kia whakatarewahia, he roa tonu te roa, ko te tikanga kaua e neke ake i te rau microhekona.
  • He tautoko taapiri mo nga turanga Unix (AF_UNIX) ki nga akomanga SocketChannel, ServerSocketChannel me java.nio.channels.
  • Kua whakatinanahia he tauranga mo te tohatoha Linux Alpine me te musl whare pukapuka C paerewa, he mea rongonui ki nga taiao mo nga ipu, microservices, kapua me nga punaha whakauru. Ko te tauranga i whakaarohia i roto i enei taiao ka taea e koe te whakahaere i nga kaupapa Java penei i nga tono auau. I tua atu, ma te whakamahi i te jlink, ka taea e koe te tango i nga waahanga katoa kaore i whakamahia me te hanga i tetahi taiao iti e tika ana hei whakahaere i te tono, ka taea e koe te hanga i nga whakaahua taapiri motuhake mo te tono.
  • Kua whakatinanahia te tikanga Elastic Metaspace, me te arotau i nga mahi o te tohatoha me te whakahoki mahara e nohoia ana e te metadata akomanga (metaspace) i JVM HotSpot. Ko te whakamahi i te Elastic Metaspace ka whakaiti i te wehewehenga mahara, ka whakaheke i te kaitaunaki o te karaehe ki runga, ka whai hua ano hoki ki te mahi o nga tono a nga kaitoro roa na te tere o te hokinga mahara e nohoia ana e nga metadata akomanga kaore i whakamahia ki te punaha whakahaere. Hei whiriwhiri i te aratau tuku mahara i muri i te wetewete i nga karaehe, ka tukuna te whiringa "-XX:MetaspaceReclaimPolicy=(taurite|kaha|karekau)".
  • Kua taapirihia he tauranga JDK mo nga punaha Windows e whakahaere ana i runga i nga taputapu me nga kaitukatuka i runga i te hoahoanga AArch64.
  • Kua whakaarohia he tirohanga tuatoru mo te API Whakaaetanga Mahara-Tahi, ka taea e nga tono Java te uru haumaru me te whai hua ki nga rohe mahara i waho o te puranga Java ma te raweke i nga tangohanga hou o MemorySegment, MemoryAddress, me MemoryLayout.
  • Kua whakatinanahia he API Hononga Tawahi whakamatautau, e whakarato ana i te uru mai i Java ki te waehere taketake. I te taha o te Foreign-Memory API, na te atanga hootaka hou e ngawari ake ai te hanga takai ki runga i nga whare pukapuka tiri tikanga.
  • Kua taapirihia te taputapu jpackage, e taea ai e koe te hanga kete mo nga tono Java-whaiaro. Ko te whaipainga kei runga i te javapackager mai i JavaFX ka taea e koe te hanga i nga kete i roto i nga whakatakotoranga taketake ki nga momo papaaho (msi me te exe mo Windows, pkg me dmg mo macOS, deb me rpm mo Linux). Kei roto i nga kohinga nga whakawhirinaki katoa e hiahiatia ana.
  • Ko te whakamaarama kaha o nga JDK katoa o roto ka whakahohea ma te taunoa, haunga nga API whakahirahira penei i te sun.misc.Unsafe. Ko te uara o te kōwhiringa "--whakauru-kore" kua whakaritea inaianei ki te "whakakahore" hei utu mo te "whakaae" ma te taunoa, ka aukati i nga nganatanga mai i te waehere ki te uru atu ki te nuinga o nga akomanga o roto, tikanga me nga mara. Hei karo i te herenga, whakamahia te kōwhiringa “-illegal-access=permit”.
  • Ko te whakatinanatanga o te whakataurite tauira i roto i te kaiwhakahaere "instanceof" kua whakapumau, e taea ai e koe te tautuhi tonu i tetahi taurangi rohe ki te tohu 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”. Was: if (obj instanceof Group) { Group group = (Group) obj; var tāurunga = group.getEntries(); } Inaianei ka taea e koe te mahi me te kore e tautuhi "Rōpū Rōpū = (Rōpū) obj": if (obj instanceof Rōpū Rōpū) { var entries = group.getEntries(); }
  • Ko te whakatinanatanga o te kupu matua "rekoata" kua whakapumautia, e whakarato ana i te ahua kiato mo nga whakamaramatanga o te karaehe e whakakore ana i te hiahia ki te tautuhi i nga momo tikanga taumata-iti penei i te rite(), hashCode() me toString() i roto i nga keehi ka penapena nga raraunga. i nga mara anake, e kore nei e puta ke. Ina whakamahi te karaehe i nga whakatinanatanga paerewa o nga tikanga rite(), hashCode() me toString(), ka taea te mahi me te kore e tino whakamaarama ana: rekoata a te iwi BankTransaction(RaLocalDate, moni takirua, 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 tukuna he tauira tuarua 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 nga 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; karaehe hiri a te iwi Whakaaetanga ahua com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {…}

Source: opennet.ru

Tāpiri i te kōrero