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

I muri i ngā marama e ono o te whanaketanga, kua tukuna e Oracle te tūāpapa Java SE 22 (Java Platform, Standard Edition 22), e whakamahi ana i te kaupapa OpenJDK pūtake tuwhera hei whakatinanatanga tohutoro. Haunga te tango i ētahi āhuatanga kua kore e whakamahia, ka mau tonu te hototahi whakamuri o Java SE 22 ki ngā putanga o mua o te tūāpapa Java—ko te nuinga o ngā kaupapa Java kua tuhia i mua ka rere tonu ina whakahaerehia i raro i te putanga hou. Kua rite ngā hanganga kua rite ki te tāuta o Java SE 22 (JDK, JRE, me te Server JRE) mō Linux (x86_64, AArch64), Windows (x86_64) me macOS (x86_64, AArch64). I whakawhanakehia e te kaupapa OpenJDK, ko te whakatinanatanga tohutoro Java 22 he pūtake tuwhera katoa i raro i te raihana GPLv2 me te GNU ClassPath Exception, e āhei ai te hononga hihiri ki ngā hua arumoni.

Kua whakarōpūtia te Java SE 22 hei putanga tautoko auau, me te haere tonu o ngā whakahoutanga tae noa ki te putanga e whai ake nei. Ko te peka tautoko roa (LTS) me Java SE 21, Java SE 17 rānei, ka haere tonu te whiwhi whakahoutanga tae noa ki te tau 2031 me te 2029, ia (e wātea ana tae noa ki te tau 2028 me te 2026). I mutu te tautoko whānui mō te peka Java SE 11 LTS i te marama o Hepetema kua taha ake nei, engari ka haere tonu te tautoko roa tae noa ki te tau 2032. Ka haere tonu te tautoko roa mō te peka Java SE 8 LTS tae noa ki te tau 2030.

Hei whakamaumahara, mai i te tukunga o Java 10, i neke te kaupapa ki tētahi tukanga whakawhanake hou, he poto ake te huringa tuku. Inaianei kua whakawhanakehia ngā mahi hou i roto i tētahi peka matua kotahi, e whakahoutia tonutia ana, e whakauru ana i ngā huringa kua oti, ā, mai i ēnei peka ka wehea i ia ono marama hei whakau i ngā tukunga hou.

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

  • Ka tautoko te kaikohi para G1 i te whakapiri rohe, e āhei ai te whakapiri wā poto i ngā mea Java ki roto i te mahara kia kore ai e nekehia e te kaikohi para, kia pai ai hoki te whakawhiti haumaru o ngā tohutoro ki ēnei mea i waenga i te Java me te waehere taketake. Ka whakaitihia te whakaroa e te whakapiri, ā, ka karohia te whakakore i te kohikohinga para i te wā e whakahaere ana i ngā rohe matua o te JNI (Java Native Interface) me te waehere taketake (i te wā e whakahaeretia ana ēnei rohe, kaua te JVM e neke i ngā mea matua e pā ana ki a rātou kia kore ai e whai tikanga whakataetae). Ka tangohia e te whakapiri ngā mea matua mai i te tirohanga a te kaikohi para, ka taea ai e ia te horoi tonu i ngā rohe kāore i whakapirihia.
  • Kua tāpirihia he āhuatanga tuatahi e āhei ai ngā kīanga i roto i ngā kaihanga ki te mua i te karangatanga ki te super(…), e whakamahia ana hei karanga tika i tētahi kaihanga akomanga matua mai i tētahi kaihanga akomanga i ahu mai, mena kāore aua kīanga e pā ana ki te tauira e hangaia ana e te kaihanga. class Outer { void hello() { System.out.println("Hello"); } class Inner { Inner() { hello(); super(); } } }
  • Kua whakapūmautia te FFM (Foreign Function & Memory) API, e āhei ai ngā kaupapa Java ki te taunekeneke ki te waehere me ngā raraunga o waho mā te karanga i ngā mahi mai i ngā whare pukapuka o waho me te uru atu ki te mahara i waho o te JVM, me te kore e whakamahi i te JNI (Java Native Interface).
  • Kua whakahohea te tautoko mō ngā taurangi ingoakore me te taurite tauira — hei utu mō ngā taurangi me ngā tauira kāore i whakamahia engari e hiahiatia ana, ka taea e koe te tohu i te pūāhua "_". // was String pageName = switch (page) { case GitHubIssuePage(var url, var content, var links, int issueNumber) -> "ISSUE #" + issueNumber; ... }; // ināianei ka taea e koe te String pageName = switch (page) { case GitHubIssuePage(_, _, _, int issueNumber) -> "ISSUE #" + issueNumber; };
  • E whakaarohia ana he whakatinanatanga tuatahi o te Class-File API mō te wetewete, te whakaputa, me te whakawhiti i ngā kōnae akomanga Java. ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(bytes); byte[] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> { for (ClassElement ce : classModel) { if (!(ce instanceof MethodModel mm && mm.methodName().stringValue().startsWith(«debug»))) { classBuilder.with(ce); } } });
  • Ka whakatinanahia e te taputapu java te kaha ki te whakahaere i ngā kaupapa Java e tukuna ana hei kōnae waehere maha, hei whare pukapuka akomanga kua oti te whakahiato, me te kore e whakahiato motuhake i ēnei kōnae, e whirihora rānei i te pūnaha hanga. Mā tēnei āhuatanga hou ka māmā ake te whakahaere i ngā kaupapa e wehea ai te waehere mō ngā akomanga rerekē ki ngā kōnae 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, hei whakahaere i tētahi kaupapa kei roto ko ngā kōnae e rua "Prog.java" me "Helper.java", me whakahaere noa i "java Prog.java", māna e whakahiato te akomanga Prog, e whakatau he tohutoro ki te akomanga Āwhina, e rapu me te whakahiato i te kōnae Āwhina.java, ā, ka karanga i te tikanga matua.

  • Kua tāpirihia he whakatinanatanga tuatahi tuarua o ngā Tātauira Aho, i whakatinanahia hei tāpiri atu ki ngā kupu matua aho me ngā poraka tuhinga. Mā ngā Tātauira Aho ka taea e koe te whakakotahi i te tuhinga me ngā kīanga kua tatauhia me ngā taurangi me te kore e whakamahi i te kaiwhakahaere "+". Ka mahia te whakakapinga kīanga mā te whakamahi i ngā whakakapinga \{..}, ā, ka taea te hono i ngā kaiwhakahaere motuhake hei tirotiro i te tika o ngā uara kua whakakapia. Hei tauira, ka whakarite te kaiwhakahaere SQL i te mana o ngā uara kua whakakapia ki te waehere SQL, ā, ka whakahokia mai he mea java.sql.Statement, ā, ka aroturuki te kaiwhakahaere JSON i te tika o ngā whakakapinga JSON, ā, ka whakahokia mai he JsonNode. Uiui aho = "SELECT * FROM Person p WHERE p." + property + " = '" + value + "'"; // was Tauākī patai = SQL.»»»SELECT * FROM Person p WHERE p.\{property} = '\{value}'»»»; // became
  • Kua tāpirihia te whakatinanatanga tuatahi tuawhitu o te Vector API. Ka whakaratohia e tēnei API ngā mahi mō ngā tataunga vector e mahia ana mā te whakamahi i ngā tohutohu vector tukatuka x86_64 me AArch64, ā, ka taea te mahi tahi i runga i ngā uara maha (SIMD). Kāore i rite ki te whaka-aunoa-vectoring o ngā mahi tauine a te kaiwhakakotahi HotSpot JIT, ka taea e te API hou te whakahaere mārama i runga i te whaka-vectoring mō te tukatuka raraunga whakarara.
  • Kua tāpirihia he whakatinanatanga tuatahi o te Stream API whānui, e tautoko ana i te tautuhi i ngā mahi takawaenga ritenga, ka whai hua pea i ngā wā kāore e ranea ngā mahi takawaenga kua hangaia mō te whakawhiti raraunga e hiahiatia ana. Ka tāpirihia ngā kaiwhakahaere ritenga mā te whakamahi i te mahi takawaenga Stream::gather(Gatherer) hou, e tukatuka ana i ngā huānga awa mā te whakamahi i tētahi kaiwhakahaere kua tautuhia e te kaiwhakamahi ki a rātou. 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]]
  • Kua whakaarohia kia whakamatautauria tētahi putanga tuarua o te API whakamātautau mō te Structured Concurrency, e whakangāwari ana i te whakawhanaketanga o ngā tono miro-maha mā te whakahaere i ngā mahi maha e rere ana i roto i ngā miro rerekē hei wae kotahi.
  • I tāpirihia he whakatinanatanga tuatahi tuarua o ngā akomanga kua whakapuakina ā-pūmau me ngā tauira ingoakore o te tikanga "matua", ka taea te mahi me te kore he whakapuakitanga tūmatanui/pūmau, te tuku i tētahi huinga o ngā tautohe, me ētahi atu hinonga e pā ana ki te whakapuakitanga akomanga. // i te akomanga tūmatanui HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } } // inaianei ka taea e koe te void main() { System.out.println("Hello, World!"); }
  • Kua tāpirihia he whakatinanatanga tuatahi tuarua o Ngā Uara Whānui. Mā tēnei whakatinanatanga ka taea te tiritiri raraunga pumau puta noa i ngā miro, me te whakawhiti raraunga whai hua i waenga i ngā miro tamariki (ka tukuna iho ngā uara). Kua hangaia ngā Uara Whānui hei whakakapi i te tikanga taurangi miro-rohe, ā, he pai ake te whakamahi ina whakamahia he maha rawa ngā miro mariko (mano me te miriona miro). Ko te rerekētanga matua i waenga i ngā Uara Whānui me ngā taurangi miro-rohe ko te tuhi kotahi, kāore e taea te whakarerekē, ā, ka noho wātea noa mō te roanga o te whakahaerenga o te miro.
  • Kua pai ake te mahi a te Parallel para collector ina mahi ana me ngā huinga ahanoa nui. Nā ēnei arotautanga kua whakaitihia te whakaroa i mua i te rapunga ahanoa mā te 20% i roto i ētahi whakamātautau me ngā huinga ahanoa nui.

Hei tāpiritanga, e hiahia ana mātou ki te whakapuaki i te tukunga o tētahi whakahoutanga ki te tūāpapa JavaFX 22 mō te waihanga i ngā tono me tētahi atanga whakairoiro.

Source: opennet.ru

Hokona te manaaki pono mo nga waahi me te tiaki DDoS, nga kaiwhakarato VPS VDS 🔥 Hokona he manaaki paetukutuku pono me te tiakitanga DDoS, ngā tūmau VPS VDS | ProHoster