Tso tawm Java SE 22 platform thiab OpenJDK 22 qhib siv siv

Tom qab rau lub hlis ntawm txoj kev loj hlob, Oracle tso tawm Java SE 22 (Java Platform, Standard Edition 22), uas siv OpenJDK qhib qhov project raws li nws siv siv. Nrog rau qhov tshwj xeeb ntawm kev tshem tawm qee qhov uas tsis siv lawm, Java SE 22 tswj kev rov qab sib raug zoo nrog cov kev tshaj tawm yav dhau los ntawm Java platform - feem ntau cov ntawv sau yav dhau los Java yuav ua haujlwm yam tsis muaj kev hloov pauv thaum khiav hauv qab version tshiab. Npaj-rau-nruab tsim ntawm Java SE 22 (JDK, JRE thiab Server JRE) yog npaj rau Linux (x86_64, AArch64), Windows (x86_64) thiab macOS (x86_64, AArch64). Tsim los ntawm OpenJDK qhov project, qhov kev siv Java 22 yog qhov qhib tag nrho raws li daim ntawv tso cai GPLv2, nrog rau GNU ClassPath kev zam pub rau kev sib txuas nrog cov khoom lag luam.

Java SE 22 raug cais raws li qhov kev txhawb nqa tsis tu ncua thiab yuav tau txais kev hloov kho txuas ntxiv mus txog thaum tso tawm tom ntej. Lub Tuam Txhab Lub Sijhawm Ntev (LTS) yuav tsum yog Java SE 21 lossis Java SE 17, uas yuav tau txais kev hloov tshiab kom txog rau thaum 2031 thiab 2029, raws li (feem ntau muaj txog 2028 thiab 2026). Kev txhawb nqa pej xeem rau LTS ceg ntawm Java SE 11 tau xaus lub Cuaj Hlis kawg, tab sis kev txhawb nqa txuas ntxiv yuav txuas ntxiv mus txog xyoo 2032. Kev txhawb nqa txuas ntxiv rau LTS ceg ntawm Java SE 8 yuav txuas ntxiv mus txog xyoo 2030.

Cia peb nco ntsoov koj tias pib nrog kev tso tawm ntawm Java 10, qhov project tau hloov mus rau txoj kev txhim kho tshiab, ua rau lub voj voog luv luv rau kev tsim tawm tshiab. Kev ua haujlwm tshiab tam sim no tau tsim nyob rau hauv ib qho kev hloov kho tshiab tas li, uas suav nrog cov kev hloov pauv uas tau npaj tseg thiab los ntawm cov ceg ntoo uas tau txiav txhua rau rau lub hlis kom ruaj khov rau kev tso tawm tshiab.

Cov yam ntxwv tshiab hauv Java 22 suav nrog:

  • G1 cov khoom khib nyiab suav nrog kev txhawb nqa rau cheeb tsam pinning, uas tso cai rau koj kho qhov chaw ntawm Java khoom nyob rau hauv lub cim xeeb ib ntus kom tsis txhob txav mus los ntawm cov neeg khaws khib nyiab thiab tso cai rau cov ntaub ntawv xa mus rau cov khoom no kom muaj kev nyab xeeb ntawm Java thiab haiv neeg cov cai. Pinning tso cai rau koj txo qis latency thiab tsis txhob cuam tshuam cov khib nyiab thaum ua tiav cov cheeb tsam tseem ceeb ntawm JNI (Java Native Interface) nrog cov cai haiv neeg (thaum ua tiav cov ntu no, JVM yuav tsum tsis txhob txav cov khoom tseem ceeb cuam tshuam nrog lawv kom tsis txhob muaj haiv neeg). Pinning tshem tawm cov khoom tseem ceeb los ntawm qhov pom ntawm cov khoom khib nyiab, uas tuaj yeem txuas ntxiv mus ntxuav cov chaw tsis muaj pinned.
  • Ib qho kev ua ntej tau muab ntxiv los tso cai rau cov kab lus kom tau teev tseg hauv cov neeg tsim ua ntej hu rau super(...), siv los hu rau niam txiv hauv chav tsev tsim los ntawm tus tsim cov chav kawm qub yog tias cov kab lus tsis xa mus rau qhov piv txwv tsim los ntawm tus tsim. class Outer { void hello() { System.out.println("Hello"); } class Inner { Inner() { nyob zoo(); super(); }}}}
  • FFM (Foreign Function & Memory) API tau ruaj khov, tso cai rau kev sib cuam tshuam ntawm Java cov kev pab cuam nrog lwm tus lej thiab cov ntaub ntawv los ntawm kev hu ua haujlwm los ntawm cov tsev qiv ntawv sab nraud thiab nkag mus rau lub cim xeeb sab nraum JVM, yam tsis muaj kev siv JNI (Java Native Interface).
  • Kev them nyiaj yug rau cov tsis muaj npe sib txawv thiab cov qauv sib piv tau raug qhib - tsis yog siv tsis tau tab sis tsim nyog hloov pauv thiab cov qauv thaum hu, tam sim no koj tuaj yeem teev tus cim "_". // yog String pageName = hloov (nplooj) { rooj plaub GitHubIssuePage(var url, var cov ntsiab lus, var links, int issueNumber) -> β€œISSUE #” + issueNumber; ... }; // tam sim no koj tuaj yeem String pageName = hloov (nplooj) { rooj plaub GitHubIssuePage(_, _, _, int issueNumber) -> β€œISSUE #” + issueNumber; };
  • Ib qho kev siv ua ntej ntawm Class-File API yog npaj rau kev txheeb xyuas, tsim, thiab hloov cov ntaub ntawv hauv chav kawm 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);
  • java utility muab lub peev xwm los khiav Java cov kev pab cuam, muab nyob rau hauv daim ntawv ntawm ob peb code ntaub ntawv los yog precompiled chav tsev qiv ntawv, tsis muaj cais compiling cov ntaub ntawv thiab tsis configuring lub tsim system. Cov yam ntxwv tshiab ua rau nws yooj yim dua los khiav cov kev pab cuam uas cov cai ntawm cov chav kawm sib txawv tau muab cais ua cov ntaub ntawv cais. Prog.java: class Prog { public static void main(String[] args) { Helper.run(); } } Helper.java: class Helper { static void run() { System.out.println("Nyob zoo!"); }}

    Piv txwv li, los khiav ib qho kev pab cuam uas muaj ob cov ntaub ntawv "Prog.java" thiab "Helper.java" nws yog tam sim no txaus los khiav "java Prog.java", uas yuav compile lub Prog chav kawm ntawv, txhais ib tug siv rau cov pab pawg neeg, nrhiav thiab sau cov ntaub ntawv Helper java thiab hu rau txoj kev tseem ceeb.

  • Ntxiv qhov thib ob ua ntej kev siv ntawm Cov Kab Xev, siv ntxiv rau cov kab ntawv thiab cov ntawv thaiv. Txoj hlua templates tso cai rau koj los ua ke cov ntawv nrog suav cov kab lus thiab hloov pauv yam tsis siv tus neeg teb xov tooj +. Kev hloov cov lus qhia yog ua los ntawm kev hloov pauv \{..}, thiab cov neeg ua haujlwm tshwj xeeb tuaj yeem txuas nrog los xyuas qhov tseeb ntawm qhov hloov pauv. Piv txwv li, lub cav SQL kuaj xyuas cov txiaj ntsig tau hloov pauv rau hauv SQL code thiab xa rov qab java.sql.Statement object raws li cov zis, thaum JSON processor saib xyuas qhov tseeb ntawm JSON hloov pauv thiab xa rov qab rau JsonNode. String query = "SELECT * FROM Person p WHERE p." + khoom + " = '" + nqi + "'"; // yog Nqe lus nug = SQL. // ua
  • Ib qhov thib xya saib ua ntej ntawm Vector API tau ntxiv, muab cov haujlwm rau kev suav vector uas tau ua los ntawm cov lus qhia vector ntawm x86_64 thiab AArch64 processors thiab tso cai rau cov haujlwm ua haujlwm ib txhij rau ntau qhov txiaj ntsig (SIMD). Tsis zoo li lub peev xwm muab rau hauv HotSpot JIT compiler rau nws pib-vectorization ntawm kev ua haujlwm scalar, API tshiab ua rau nws muaj peev xwm tswj hwm vectorization rau cov ntaub ntawv sib luag.
  • Ib qho kev siv ua ntej ntawm qhov txuas ntxiv kwj API tau ntxiv uas txhawb kev txhais koj tus kheej cov haujlwm nruab nrab, uas yuav muaj txiaj ntsig zoo nyob rau hauv cov xwm txheej uas qhov kev ua haujlwm nruab nrab uas twb muaj lawm tsis txaus rau cov ntaub ntawv xav tau hloov pauv. Cov neeg ua haujlwm hauv haiv neeg tau txuas nrog siv qhov kev ua haujlwm nruab nrab tshiab kwj:: sib sau ua ke (Gatherer), uas ua cov khoom ntws los ntawm kev siv tus neeg siv tshwj xeeb rau lawv. 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]] ib.
  • Ib qho thib ob ntawm qhov kev sim API rau Structured Concurrency tau raug npaj rau kev sim, uas ua kom yooj yim rau kev txhim kho ntawm ntau cov ntawv thov los ntawm kev ua ntau yam haujlwm ua tiav hauv cov xov sib txawv raws li ib qho thaiv.
  • Ntxiv qhov thib ob ua ntej kev siv ntawm implicitly declared chav kawm thiab unnamed piv txwv ntawm "lub ntsiab" txoj kev, uas muaj peev xwm dispense nrog pej xeem / zoo li qub tshaj tawm, dhau ib tug array ntawm kev sib cav, thiab lwm yam koom haum nrog rau ib chav kawm ntawv tshaj tawm. // yog pej xeem chav HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } } // tam sim no koj tuaj yeem void main() { System.out.println("Nyob zoo, Ntiaj Teb!"); }
  • Ntxiv qhov kev saib ua ntej thib ob ntawm Scoped Values, tso cai rau cov ntaub ntawv tsis hloov pauv tau sib koom hla cov xov thiab cov ntaub ntawv sib pauv tau zoo ntawm cov menyuam xov (cov txiaj ntsig tau txais txiaj ntsig). Scoped Values ​​​​yog tau tsim los hloov cov xov-loj hloov pauv mechanism thiab ua haujlwm tau zoo dua thaum siv cov xov tooj virtual ntau (txhiab lossis ntau lab ntawm xov). Qhov sib txawv tseem ceeb ntawm Scoped Values ​​thiab xov-loj hloov pauv hauv zos yog qhov qub tau sau ib zaug, tsis tuaj yeem hloov pauv yav tom ntej, thiab tseem muaj nyob rau lub sijhawm ntawm kev ua tiav xov.
  • Parallel khib nyiab collector tau txhim kho kev ua haujlwm thaum ua haujlwm nrog cov khoom loj loj. Optimization ua rau nws ua tau nyob rau hauv qee qhov kev ntsuam xyuas nrog cov khoom loj ntawm cov khoom kom txo tau qhov ncua sij hawm ua ntej pib nrhiav ib yam khoom los ntawm 20%.

Tsis tas li ntawd, koj tuaj yeem sau tseg qhov kev tshaj tawm ntawm qhov hloov tshiab rau lub platform rau kev tsim cov ntawv thov nrog lub graphical interface JavaFX 22.

Tau qhov twg los: opennet.ru

Ntxiv ib saib