Fa'asa'olotoina o le Java SE 22 fa'avae ma le OpenJDK 22 fa'atinoina o fa'amatalaga tatala

Ina ua maeʻa le ono masina o le atinaʻe, ua tuʻuina atu e Oracle le Java SE 22 (Java Platform, Standard Edition 22), lea e faʻaaogaina ai le OpenJDK open source project e fai ma faʻataʻitaʻiga. Se'i vagana ai le aveesea o nisi o vaega fa'aletonu, Java SE 22 o lo'o fa'atumauina le feso'ota'iga i tua ma fa'asalalauga muamua o le Java platform-o le tele o galuega Java na tusia muamua o le a galue pea e aunoa ma se suiga pe a fa'atautaia i lalo o le lomiga fou. Fausia fa'apipi'i o Java SE 22 (JDK, JRE, ma le Server JRE) ua saunia mo Linux (x86_64, AArch64), Windows (x86_64), ma macOS (x86_64, AArch64). Fausiaina e le OpenJDK poloketi, o le Java 22 faʻasinomaga faʻatinoga o loʻo tatala atoatoa i lalo ole laisene GPLv2 faʻatasi ai ma GNU ClassPath tuusaunoaga e faʻatagaina fesoʻotaʻiga malosi i oloa faʻatau.

Java SE 22 o loʻo faʻavasegaina o se faʻasalalauga lagolago masani ma o le a faʻaauau pea ona maua faʻamatalaga seia oʻo i le isi faʻasalalauga. Ole lala ole Long Term Support (LTS) e tatau ona avea ma Java SE 21 poʻo Java SE 17, lea o le a maua faʻamatalaga seia oʻo i le 2031 ma le 2029, i le faasologa (e masani ona avanoa seia oʻo i le 2028 ma le 2026). O le lagolago a le lautele mo le lala LTS o Java SE 11 na muta ia Setema talu ai, ae o le a faʻaauau pea le lagolago faʻalautele seia oʻo i le 2032. Ole lagolago fa'aopoopo mo le lala LTS ole Java SE 8 ole a fa'aauau pea ile 2030.

Sei matou faamanatu atu ia te oe e amata i le tatalaina o le Java 10, o le poloketi na suia i se faiga fou o le atinaʻe, e faʻaalia ai se taamilosaga puupuu mo le faʻavaeina o faʻasalalauga fou. O galuega fou o lo'o fa'atupuina nei i totonu o se tasi o paranesi fa'afou fa'afou, lea e aofia ai suiga ua uma ona fai ma o lala e fa'aputuina i le ta'i ono masina e fa'amautu ai fa'asalalauga fou.

O foliga fou i Java 22 e aofia ai:

  • O le G1 garbage collector e aofia ai le lagolago mo le pine o le itulagi, lea e mafai ai e oe ona faʻapipiʻi mo sina taimi le nofoaga o mea Java i le mafaufau e aloese ai mai le faʻanofoina e le lapisi lapisi ma faʻatagaina faʻamatalaga i nei mea e pasia ma le saogalemu i le va o Java ma le tulafono masani. O le pine e mafai ai ona e faʻaitiitia le taofiofia ma aloese mai le faʻagataina o le aoina o lapisi pe a faʻatinoina vaega taua o le JNI (Java Native Interface) ma le tulafono faʻapitoa (aʻo faʻatinoina nei vaega, e le tatau i le JVM ona faʻanofoina mea taua e fesoʻotaʻi ma i latou ina ia aloese mai tulaga tuuga). O le pine e aveese ai mea taua mai le vaaiga a le tagata e aoina lapisi, lea e mafai ona faʻaauau ona faʻamama vaega e leʻi faʻapipiʻiina.
  • O se vaega muamua ua faʻaopoopoina e faʻataga ai faʻamatalaga e faʻamaonia i tagata faufale aʻo leʻi valaʻau le super(...), faʻaaogaina e valaʻau manino ai se faufale matua mai se faufale fau vasega pe afai o na faʻamatalaga e le o faasino i se faʻataʻitaʻiga na faia e le faufale. vasega I fafo { void hello() { System.out.println("Talofa"); } vasega Totonu {Inner() {hello(); sili(); } } }
  • O le FFM (Foreign Function & Memory) API ua faʻamautuina, faʻatagaina le faʻaogaina o polokalame Java ma faʻamatalaga fafo ma faʻamaumauga e ala i le valaʻau i galuega mai faletusi i fafo ma faʻaogaina mafaufauga i fafo atu o le JVM, e aunoa ma le faʻaogaina o le JNI (Java Native Interface).
  • Lagolago mo fesuiaiga e le o taʻua ma faʻafetaui mamanu ua mafai - nai lo le le faʻaaogaina ae talafeagai fesuiaiga ma mamanu pe a valaʻau, e mafai nei ona e faʻamaonia le uiga "_". // was String pageName = sui (itulau) { case GitHubIssuePage(var url, var content, var links, int issueNumber) -> “ISSUE #” + issueNumber; ... }; // lea e mafai ona e String pageName = sui (itulau) { case GitHubIssuePage(_, _, _, int issueNumber) -> “ISSUE #” + issueNumber; };
  • O se fa'atinoga muamua o le Vasega-File API o lo'o fa'atulagaina mo le fa'avasegaina, fa'atupuina, ma le fa'aliliuina o faila vasega Java. ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(bytes); byte [] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> {mo (ClassElement ce : classModel) { pe afai (!(ce instanceof MethodModel mm && mm.methodName().stringValue(). startsWith("debug"))) { classBuilder.with(ce);
  • O le aoga java e maua ai le malosi e faʻatautaia ai polokalame Java, tuʻuina atu i le tele o faila faila poʻo faletusi vasega muamua, e aunoa ma le tuʻufaʻatasia o nei faila ma e aunoa ma le faʻatulagaina o le faiga fau. O le fa'aaliga fou e fa'afaigofie ai le fa'agaoioia o polokalame o lo'o tu'u'ese'ese ai le fa'ailoga o vasega eseese i faila eseese. Prog.java: vasega Prog { public static void main(String[] args) { Helper.run(); } } Fesoasoani.java: Fesoasoani vasega { static void run() { System.out.println("Talofa!"); }}

    Mo se faʻataʻitaʻiga, e faʻatautaia se polokalame e aofia ai faila e lua "Prog.java" ma le "Helper.java" ua lava nei e faʻatautaia ai le "java Prog.java", lea o le a tuufaatasia ai le vasega Prog, faʻamatala se faʻamatalaga i le vasega Fesoasoani, saili ma tuufaatasia le faila Fesoasoani java ma valaʻau le auala autu.

  • Fa'aopoopoina lona lua fa'ata'ita'iga muamua o String Templates, fa'atino e fa'aopoopo i le manoa fa'atusa ma poloka tusitusiga. String templates e fa'atagaina oe e tu'ufa'atasia tusitusiga ma fa'amatalaga fuafuaina ma fesuiaiga e aunoa ma le fa'aogaina o le + operator. Suiga o faʻamatalaga e faʻatinoina e faʻaaoga ai sui \{..}, ma e mafai ona faʻafesoʻotaʻi tagata faʻapitoa e siaki le saʻo o tau sui. Mo se faʻataʻitaʻiga, e siaki e le masini SQL ia tau o loʻo sui i totonu o le SQL code ma toe faʻafoʻi mai se mea java.sql.Statement e fai ma gaioiga, aʻo mataʻituina e le JSON processor le saʻo o suiga o le JSON ma toe faʻafoʻi se JsonNode. String query = "FILIFILI * MAI LE Tagata p WHERE p." + meatotino + "="" + tau + "'"; // was Statement query = SQL."""FILIFILI * MAI LE Tagata p WHERE p.\{property} = '\{value}'"""; // na avea
  • O se faʻaaliga lona fitu o le Vector API ua faʻaopoopoina, e tuʻuina atu ai galuega mo faʻatusatusaga o vete o loʻo faʻatinoina i le faʻaaogaina o faʻatonuga i luga o le x86_64 ma le AArch64 processors ma faʻatagaina gaioiga e faʻaoga i le taimi e tasi i le tele o tau (SIMD). E le pei o le gafatia o loʻo tuʻuina atu i le HotSpot JIT compiler mo le auto-vectorization o faʻagaioiga scalar, o le API fou e mafai ai ona faʻatautaia manino le vectorization mo le faʻaogaina o faʻamaumauga tutusa.
  • O se fa'ata'ita'iga fa'atinoina o le extended Stream API ua fa'aopoopoina e lagolago ai le fa'amalamalamaina o au lava galuega fa'avaitaimi, lea e ono aoga i tulaga e le lava le fa'aogaina o lo'o iai nei mo le suiga o fa'amaumauga mana'omia. O lo'o feso'ota'i tagata fa'aleaganu'u i le fa'aogaina o le fa'agaioiga fou o le Vaitafe::gather(Gatherer), lea e fa'agasolo ai elemene e ala i le fa'aogaina o se tagata e fa'atonuina e fa'aoga ia i latou. 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]]
  • O se faʻataʻitaʻiga lona lua o le API faʻataʻitaʻi mo Structured Concurrency ua tuʻuina atu mo le suʻega, lea e faʻafaigofie ai le atinaʻeina o talosaga e tele-filo e ala i le faʻatinoina o galuega e tele na faia i filo eseese o se poloka e tasi.
  • Faʻaopoopoina se faʻatinoga lona lua o vasega faʻaalia faʻaalia ma faʻamatalaga e leʻi taʻua o le auala "autu", lea e mafai ona tuʻuina atu faʻamatalaga lautele / faʻamaonia, pasia le tele o finauga, ma isi faʻalapotopotoga e fesoʻotaʻi ma se taʻutinoga a le vasega. // was public class HelloWorld {public static void main(String[] args) { System.out.println("Talofa lalolagi!"); } } // i le taimi nei e mafai ona e fa'aleaogaina main() { System.out.println("Talofa, Lalolagi!"); }
  • Faʻaopoopoina se faʻataʻitaʻiga lona lua o le faʻatinoga o le Scoped Values, faʻatagaina faʻamatalaga e le masuia e fefaʻasoaaʻi i filo ma faʻamatalaga fefaʻasoaaʻi lelei i le va o filo a tamaiti (taua e tuufaasolo). Scoped Values ​​o loʻo atiaʻe e sui ai le filo-local variables mechanism ma e sili atu ona lelei pe a faʻaaogaina le tele o numera o filo (e afe pe miliona o filo). O le eseesega tele i le va o le Scoped Values ​​​​ma filo-local variables o le mea muamua e tusia tasi, e le mafai ona suia i le lumanaʻi, ma tumau avanoa mo le umi o le faʻatinoina o le filo.
  • Ua fa'aleleia atili le fa'atinoga a le fa'aputu lapisi Parallel pe a galue ma fa'asologa tele o mea. O le fa'aleleia atili na mafai ai i nisi o su'ega ma fa'asologa tetele o mea faitino e fa'aitiitia ai le fa'atuai a'o le'i amata su'e se mea i le 20%.

E le gata i lea, e mafai ona e maitauina le lolomiina o se faʻafouga i luga o le faʻavae mo le fatuina o talosaga ma se faʻataʻitaʻiga faʻataʻitaʻi JavaFX 22.

puna: opennet.ru

Faaopoopo i ai se faamatalaga