Te tukunga o te turanga Java SE 22 me te OpenJDK 22 te whakatinanatanga tohutoro tuwhera

I muri i nga marama e ono o te whakawhanaketanga, kua tukuna e Oracle a Java SE 22 (Java Platform, Standard Edition 22), 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 22 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 22 (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 22 i raro i te raihana GPLv2 me nga tuunga GNU ClassPath kia taea ai te hono hihiri ki nga hua arumoni.

Ko te Java SE 22 kua whakarōpūhia hei tuku tautoko i nga wa katoa ka whiwhi tonu i nga whakahoutanga tae noa ki te tukunga e whai ake nei. Ko te peka Tautoko Roa (LTS) me Java SE 21, Java SE 17 ranei, ka whiwhi whakahōutanga tae noa ki te tau 2031 me te 2029 (e waatea ana tae noa ki te 2028 me te 2026). I mutu te tautoko a te iwi mo te peka LTS o Java SE 11 i te marama o Hepetema kua hipa, engari ka haere tonu te tautoko tae noa ki te tau 2032. Ka haere tonu te tautoko mo te peka LTS o Java SE 8 tae noa ki te tau 2030.

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.

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

  • Kei roto i te kaikohi paru G1 he tautoko mo te titi rohe, e taea ai e koe te whakatika mo te wa poto te waahi o nga mea Java i roto i te mahara kia kore ai e nekehia e te kaikohi paru me te tuku tohutoro ki enei mea kia pai te whakawhiti i waenga i te Java me te waehere taketake. Ma te pine e taea ai e koe te whakaiti i te roanga me te karo i te whakakore i te kohinga para i te wa e mahia ana nga rohe whakahirahira o JNI (Java Native Interface) me te waehere taketake (i te wa e mahia ana enei waahanga, kaua e nekehia e te JVM nga taonga whakahirahira e hono ana ki a raatau kia kore ai e puta nga ahuatanga iwi). Ka tangohia e te titi nga mea whakahirahira mai i te tirohanga a te kaikohi paru, ka taea tonu te horoi i nga waahi kaore i titi.
  • Kua taapirihia he waahanga tuatahi kia taea ai te whakaatu i nga korero ki roto i nga kaihanga i mua i te karangatanga super(...), ka whakamahia ki te karanga i tetahi kaihanga akomanga matua mai i te kaihanga karaehe tuku iho mena karekau aua kii e korero ki tetahi tauira i hangaia e te kaihanga. class Outer { void hello() { System.out.println("Kia ora"); } class Roto { Inner() { kia ora(); super(); } } }
  • Kua whakapumautia te API FFM (Tahi Mahi & Mahara), ka taea te taunekeneke o nga kaupapa Java me te waehere o waho me te raraunga ma te karanga i nga mahi mai i nga whare pukapuka o waho me te uru ki te mahara ki waho o te JVM, me te kore e whakamahi i te JNI (Java Native Interface).
  • Ko te tautoko mo nga taurangi kore ingoa me te whakataurite tauira kua whakahohea - hei utu mo nga taurangi me nga tauira kaore i whakamahia engari e tika ana ina waea ana koe, ka taea e koe te tohu i te ahua "_". // was String pageName = whakawhiti (whārangi) { case GitHubIssuePage(var url, var content, var links, int issueNumber) -> “PUTANGA #” + issueNumber; ... }; // inaianei ka taea e koe te String pageName = whakawhiti (wharangi) { case GitHubIssuePage(_, _, _, int issueNumber) -> "PUTANGA #" + issueNumber; };
  • Ko te whakatinanatanga tuatahi o te API-Kōnae-akomanga e whakaarohia ana mo te poroporo, te whakaputa, me te huri i nga konae akomanga Java. ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(paita); paita[] newPaita = cf.hanga(classModel.thisClass().asSymbol(), classBuilder -> {mo (ClassElement ce : classModel) {ki te (!(ce instanceof MethodModel mm && mm.methodName().stringValue(). startsWith("debug"))) { classBuilder.with(ce);
  • Ko te whaipainga java e whakarato ana i te kaha ki te whakahaere i nga kaupapa Java, ka tukuna i roto i te ahua o te maha o nga konae waehere, i nga whare pukapuka karaehe kua oti te whakarite, me te kore e whakahiato wehe i enei konae me te kore e whirihora i te punaha hanga. Ko te ahuatanga hou he maamaa ake te whakahaere i nga kaupapa ka wehea te waehere o nga karaehe rereke ki nga konae motuhake. Prog.java: class Prog { public static void main(String[] args) { Helper.run(); } } Helper.java: class Helper { static void run() { System.out.println("Kia ora!"); }}

    Hei tauira, ki te whakahaere i tetahi papatono e rua nga konae "Prog.java" me "Helper.java" kua ranea inaianei ki te whakahaere "java Prog.java", ka whakahiato i te akomanga Prog, tautuhia he tohutoro ki te akomanga Kaiwhina, kitea me te whakahiato i te konae Kaiwhina java me te karanga i te tikanga matua.

  • I taapirihia he whakatinanatanga tuatahi tuarua o nga Tauira Aho, i whakatinanahia hei taapiri atu ki nga kupu aho me nga paraka kuputuhi. Ko nga tauira aho ka taea e koe te whakakotahi i nga kuputuhi me nga korero tatau me nga taurangi me te kore e whakamahi i te kaiwhakahaere +. Ko te whakakapinga o nga korero ka mahia ma te whakamahi i nga whakakapinga \{..}, ka taea te hono atu nga kaikawe motuhake ki te tirotiro i te tika o nga uara whakakapi. Hei tauira, ka tirotirohia e te miihini SQL nga uara e whakakapia ana ki te waehere SQL ka whakahoki mai i tetahi ahanoa java.sql.Statement hei putanga, i te wa e tirotirohia ana e te tukatuka JSON te tika o nga whakakapinga JSON me te whakahoki i te JsonNode. Uiui aho = "KŌWHIWHI * MAI I TE Tangata p WHERE p." + taonga + " = '" + uara + "'"; // was Statement query = SQL."""KORERO * MAI i te Tangata p WHERE p.\{property} = '\{value}'"""; // ka riro
  • Ko te tirohanga tuawhitu o te Vector API kua taapirihia, 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 whakatinanatanga tuatahi o te Stream API e tautoko ana i te tautuhi i o ake mahi takawaenga, tera pea ka whai hua ki nga keehi kaore i te rawaka nga mahi takawaenga o naianei mo te huringa raraunga e hiahiatia ana. Ka hono nga kaikawe Maori ma te whakamahi i te mahinga takawaenga hou Stream::gather(Gatherer), e tukatuka ana i nga huānga rerenga ma te tono i tetahi kaihautu kua tohua e te kaiwhakamahi ki a ratou. jshell> Stream.of(1,2,3,4,5,6,7,8,9).gather(new WindowFixed(3)).toList() $1 ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  • Ko te putanga tuarua o te API whakamatautau mo te Whakakotahitanga Hangaia kua whakaarohia mo te whakamatautau, e whakangwari ana i te whakawhanaketanga o nga tono miro-maha ma te tukatuka i nga mahi maha i mahia i roto i nga miro rereke hei poraka kotahi.
  • I taapirihia he whakatinanatanga tuatahi tuarua o nga karaehe kua whakahua noa me nga tauira kore ingoa o te tikanga "matua", ka taea te whakakore i nga whakapuakanga a te iwi/pateko, te tuku i te maha o nga tautohetohe, me etahi atu hinonga e hono ana ki te whakapuakanga karaehe. // was public class HelloWorld { public static void main(String[] args) { System.out.println("Kia ora te ao!"); } } // inaianei ka taea e koe te whakakore i te matua() { System.out.println("Kia ora, Ao!"); }
  • Kua taapirihia he whakatinanatanga arokite tuarua mo nga Uara Scoped, e tuku ana i nga raraunga e kore e taea te tiritiri puta noa i nga miro me nga raraunga whakawhiti tika i waenga i nga miro tamariki (he mea tuku iho nga uara). Kei te whakawhanakehia nga Uara Whakanuia hei whakakapi i te tikanga taurangi miro-a-rohe me te pai ake i te wa e whakamahi ana i nga tini miro mariko (mano, miriona miro ranei). Ko te rereketanga nui i waenga i nga Uara Whakanui me nga taurangi miro-a-rohe ko nga mea o mua ka tuhia kotahi, kaore e taea te whakarereke a muri ake nei, ka noho waatea noa mo te roanga o te mahi o te miro.
  • Kua pai ake te mahi a te kaikohi paru Parallel i te wa e mahi ana me nga huinga taonga maha. Ko te arotautanga i taea i etahi whakamatautau me te maha o nga huinga taonga hei whakaiti i te roa i mua i te tiimata ki te rapu mea ma te 20%.

I tua atu, ka taea e koe te tuhi i te panui o te whakahou ki te papaaho mo te hanga tono me te atanga whakairoiro JavaFX 22.

Source: opennet.ru

Tāpiri i te kōrero