Java SE 17 tuku

I muri i nga marama e ono o te whakawhanaketanga, kua tukuna e Oracle a Java SE 17 (Java Platform, Standard Edition 17), e whakamahi ana i te kaupapa tuwhera OpenJDK hei whakatinanatanga tohutoro. I tua atu i te tangohanga o etahi ahuatanga kua kore, ka mau tonu a Java SE 17 i te hototahi whakamuri me nga putanga o mua o te papaahi Java—ko te nuinga o nga kaupapa Java kua tuhia o mua ka mahi tonu me te kore whakarereke i te wa e rere ana i raro i te putanga hou. Ko nga hanga whakaurunga o Java SE 17 (JDK, JRE, me Server JRE) kua rite mo Linux (x86_64, AArch64), Windows (x86_64), me te macOS (x86_64, AArch64). I whakawhanakehia e te kaupapa OpenJDK, ka tino tuwhera te whakatinanatanga tohutoro Java 17 i raro i te raihana GPLv2 me nga tuunga GNU ClassPath kia taea ai te hono hihiri ki nga hua arumoni.

Ko Java SE 17 kua whakarōpūhia hei tukunga Tautoko mo te wa roa (LTS), ka whiwhi tonu i nga whakahoutanga tae noa ki te tau 2029. Ko nga whakahoutanga mo te tukunga o mua o Java 16 kua whakakorehia. Ko te peka LTS o mua o Java 11 ka tautokohia tae noa ki te tau 2026. Ko te tukunga LTS e whai ake nei kua whakaritea mo Mahuru 2024. 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.

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

  • Ko te whakatinanatanga whakamatautau mo te whakataurite tauira i roto i nga korero "whakawhiti", ka taea te whakamahi i nga uara kaore i te tika i roto i nga tapanga "take", engari ko nga tauira ngawari e hipoki ana i nga raupapa o nga uara i te wa kotahi, na te mea i mua he mea tika ki te whakamahi uaua nga mekameka o nga korero "mehemea ... atu". I tua atu, "whakawhiti" he kaha ki te hapai i nga uara NULL. Ahanoa o = 123L; Kua whakahōputuhia te aho = whakakā (o) { case Integer i -> String.format("int %d", i); take Roa l -> String.format("roa %d", l); take Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); taunoa -> o.toString(); };
  • Tautoko pumau 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; karaehe hiri a te iwi Whakaaetanga ahua com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {…}
  • Ka whakaarohia he tirohanga tuarua mo 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 AArch64 tukatuka me te tuku i nga mahi ki te tono i te wa kotahi ki nga uara maha (SIMD). Kaore i rite 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 te whakahaere i te vectorization mo te tukatuka raraunga whakarara.
  • Kua taapirihia he arokite mo te Taumahi Tawahi me te Mahara API, e taea ai e nga tono te taunekeneke me te waehere me nga raraunga kei waho atu o te waa whakahaere Java. Ko te API hou ka taea e koe te waea pai ki nga mahi kore-JVM me te uru ki te mahara kore-JVM-whakahaere. Hei tauira, ka taea e koe te waea i nga mahi mai i nga whare pukapuka tiritahi o waho me te uru ki nga raraunga tukatuka me te kore whakamahi i te JNI.
  • Ko te miihini whakaputa macOS e whakakaha ana i te Java 2D API, ka huri te mana i te Swing API, kua urutau ki te whakamahi i te API whakairoiro Metal. Kei te whakamahi tonu te papaaho MacOS i te OpenGL ma te taunoa, me te whakahohe i te tautoko Metal me whakarite "-Dsun.java2d.metal=true" me te whakahaere i te macOS 10.14.x.
  • I taapirihia he tauranga mo te papaaho macOS/AArch64 (rorohiko a Apple i runga i nga maramara Apple M1 hou). Ko tetahi ahuatanga motuhake o te tauranga he tautoko mo te tikanga tiaki mahara W^X (Tuhia XOR Execute), e kore e taea te uru atu ki nga wharangi mahara mo te tuhi me te mahi. (ka taea te mahi waehere i muri noa i te whakakorenga o te tuhi, ka taea te tuhi ki te wharangi mahara i muri noa i te whakakorenga o te mahi).
  • I whakahokia ki te whakamahi i nga kupu strictfp anake mo nga korero tohu maanu. Ko te tautoko mo nga tohu "taunoa", e waatea ana mai i te tukunga o Java 1.2, kua whakakorehia, tae atu ki nga whakangawaritanga mo te mahi i runga i nga punaha me nga kaitoha math x87 tawhito rawa (i muri i te taenga mai o nga tohutohu SSE2, kua ngaro te hiahia mo etahi atu tohutoro).
  • Ko nga momo atanga hou ki nga kaihanga tau pseudorandom kua whakatinanahia, me etahi atu algorithms kua whakatinanahia kia pai ake ai te whakatipu tau matapōkere. Ka whai waahi nga tono ki te whiriwhiri i tetahi algorithm mo te whakaputa tau pseudorandom. He pai ake te tautoko mo te whakaputa i nga awa ahanoa matapōkere.
  • Ko te whakaurunga tino kaha o nga tangata o roto o JDK katoa, haunga nga API whakahirahira penei i te sun.misc.Unsafe. Ka aukati te aukati i nga nganatanga mai i te waehere ki te uru ki nga karaehe o roto, nga tikanga me nga mara. I mua, ka taea te whakakore i te aratau whakamaarama ma te whakamahi i te whiringa "--illegal-access=permit", engari kua whakakorehia tenei inaianei. Ko nga tono e hiahia ana kia uru atu ki nga karaehe o roto, nga tikanga me nga mara me whakamarama ma te whakamahi i te whiringa --add-opens, te huanga Tāpiri-Tuwhera ranei i te konae whakaatu.
  • Ka whakawhiwhia ki nga tono te kaha ki te tautuhi i nga whiriwhiringa whakamaaramatanga raraunga, ka taea te taapiri i te horopaki me te kowhiringa hihiri i runga i nga mahi whakahekenga motuhake. Ko nga whiriwhiringa kua tohua e pa ana ki te miihini mariko katoa (JVM-whanui), i.e. kaua e hipokina te tono anake, engari ko nga whare pukapuka tuatoru e whakamahia ana i roto i te tono.
  • Kua taapirihia e Swing te tikanga javax.swing.filechooser.FileSystemView.getSystemIcon ki te uta i nga ata nui hei whakapai ake i te UI ki nga mata DPI Teitei.
  • Ko te java.net.DatagramSocket API e whakarato ana i te tautoko mo te hono ki nga roopu Multicast me te kore e hiahiatia he API java.net.MulticastSocket motuhake.
  • Kua pai ake te whaipainga IGV (Ideal Graph Visualizer), e whakarato ana i te whakakitenga tauwhitiwhiti o te tohu tohu takawaenga i roto i te kaikoipi HotSpot VM C2 JIT.
  • I roto i te JavaDoc, ma te whakataurite me te javac compiler, ka puta he hapa, ka tohua te maha o te raina raruraru i roto i te konae puna me te waahi o te hapa.
  • Kua tāpirihia te āhuatanga native.encoding, e whakaatu ana i te ingoa o te whakawaehere pūāhua pūnaha (UTF-8, koi8-r, cp1251, etc.).
  • Kua taapirihia te atanga java.time.InstantSource, ka taea te raweke i te waa me te kore tohutoro ki tetahi rohe waahi.
  • Kua taapirihia te java.util.HexFormat API mo te huri ki te tohu hexadecimal me te rereke.
  • Kua taapirihia he aratau blackhole ki te kaitoi, e whakakore ana i nga mahi whakakore-mate, ka taea te whakamahi i te wa e whakahaere ana i nga whakamatautau mahi.
  • Kua taapirihia te "-Xlog:async" ki te Wā Whakahaere hei tuhi i nga raarangi ki te aratau tukutahi.
  • I te wa e whakatuu ana i nga hononga haumaru, ka whakahohea te TLS 1.3 ma te taunoa (i whakamahia te TLS 1.2 i mua).
  • Ko te API Applet kua kiia ake nei kua tawhitotia (java.applet.Applet*, javax.swing.JApplet), i whakamahia hei whakahaere i nga tono Java i roto i te tirotiro, kua nekehia ki te waahanga kua tohua mo te tango (kua ngaro te whai take i muri i te mutunga o te tautoko. mo te mono Java mo nga kaitirotiro).
  • Ko te Kaiwhakahaere Haumarutanga, kua roa kua ngaro tona whaitaketanga me te kore i kiihia i muri i te mutunga o te tautoko mo te mono tirotiro, kua nekehia ki te waahanga o te hunga kua whakaritea mo te tango.
  • Kua tangohia te tikanga Whakahohe RMI, kua tawhito, kua tukuna ki te waahanga o te whiringa i roto i te Java 8 me te kore rawa e whakamahia i roto i nga mahi hou.
  • He kaiwhakatairanga whakamatautau e tautoko ana i te JIT (tika-i-wa) mo te whakahiato hihiko o te waehere Java mo HotSpot JVM, tae atu ki te ahua o te whakahiato matakite (AOT, i mua i te wa) o nga karaehe ki te waehere miihini i mua i te tiimata o te miihini mariko. , kua tangohia mai i te SDK. I tuhia te kaitoi i roto i te Java me i runga i nga mahi a te kaupapa Graal. Kei te tohuhia ko te tiaki i te kaiwhakangungu he nui te mahi, kaore e tika ana kaore he tono mai i nga kaihanga.

Source: opennet.ru

Tāpiri i te kōrero