Java SE 20 tuku

I muri i nga marama e ono o te whakawhanaketanga, kua tukuna e Oracle a Java SE 20 (Java Platform, Standard Edition 20), 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 20 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 20 (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 20 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 20 kua tohatohahia hei tuku tautoko i nga wa katoa, me nga whakahou ka tukuna i mua i te tukunga o muri. Ko Java SE 17 te peka Tautoko Roa (LTS), ka tae ki te tau 2029. Kia maumahara i timata mai i te tukunga o Java 10, ka huri te kaupapa ki te tukanga whanaketanga hou, e kii ana he huringa poto ake mo te hanganga o nga putanga hou. Kei te whanakehia he mahinga hou i roto i tetahi peka matua kua whakahoutia i nga wa katoa, e whakauru ana i nga whakarereketanga kua oti kua oti, me nga manga ka peka ia ono marama ki te whakapumau i nga putanga hou.

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

  • He tautoko tuatahi mo Scoped Values, 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 whanakehia nga Uara Whakanuia hei whakakapi i nga tikanga taurangi miro-a-rohe me te pai ake ina whakamahi 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 mahinga o te miro. Class Server { ScopedValue pateko whakamutunga CURRENT_USER = ScopedValue hou(); void serve(tono tono, whakautu whakautu) { var level = (tono. isAuthorized()? ADMIN : MANUIHI); var user = Kaiwhakamahi hou(taumata); ScopedValue.where(CURRENT_USER, user).run(() -> Application.handle(tono, whakautu)); } } class DatabaseManager { DBConnection open() { var user = Server.CURRENT_USER.get(); ki te (!user.canOpen()) maka hou InvalidUserException(); whakahokia DBConnection hou(...); }}
  • Ko te tirohanga tuarua o nga tauira rekoata kua taapirihia, e whakaroa ana i te ahua riterite tauira i whakauruhia ki Java 16 ki te tarai i nga uara o nga akomanga rekoata. Hei tauira: tuhi Ira(int x, int y) {} static void printSum(Object obj) { if (obj instanceof Point p) { int x = px(); int y = py(); System.out.println(x+y); }}
  • Ko te tuawha o te whakatinanatanga tuatahi mo te whakataurite tauira i roto i nga korero "whakawhiti" kua taapirihia, ka taea e nga tapanga "take" te whakamahi ehara i nga uara tika, engari ko nga tauira ngawari e kapi ana i te raupapa o nga uara i te wa kotahi, na reira i tika ai te whakamahi uaua. nga mekameka o nga korero "mehemea ... atu". static String formatterPatternSwitch(Object obj) { return switch (obj) { 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(); }; }
  • Ko te tuarua o te whakatinanatanga tuatahi o te FFM (Foreign Function & Memory) API kua taapirihia, ka taea e koe te whakarite i te taunekeneke o nga kaupapa Java me te waehere o waho me nga 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.
  • Kua taapirihia he tirohanga tuarua mo nga miro mariko, he miro mama e tino ngawari ana te tuhi me te pupuri i nga tono miro-maha.
  • I taapirihia he API whakamatautau tuarua mo te whakarara whakarara, e whakangwari ana i te whanaketanga o nga tono miro-maha ma te mahi i nga mahi maha e rere ana i roto i nga miro rereke hei poraka kotahi.
  • He tirohanga tuarima 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.

Source: opennet.ru

Tāpiri i te kōrero