Java SE 20 tso tawm

Tom qab rau lub hlis ntawm txoj kev loj hlob, Oracle tso tawm Java SE 20 (Java Platform, Standard Edition 20), 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 20 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 20 (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 20 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 20 raug cais raws li kev txhawb nqa dav dav thiab yuav txuas ntxiv tau txais cov hloov tshiab mus txog thaum tso tawm tom ntej. Lub Sij Hawm Ntev (LTS) ceg yuav tsum yog Java SE 17, uas yuav tau txais kev hloov kho txuas ntxiv mus txog xyoo 2029. 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 20 suav nrog:

  • Muaj kev txhawb nqa ua ntej rau 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 tias yav dhau los tau sau ib zaug, tsis tuaj yeem hloov pauv yav tom ntej, thiab tseem muaj nyob rau lub sijhawm ntawm kev ua tiav xov. class Server { kawg static ScopedValue CURRENT_USER = tshiab ScopedValue(); void pab(Thov thov, teb teb) { var level = (request. isAuthorized()? ADMIN : GUEST); var user = new User(level); ScopedValue.where(CURRENT_USER, user).run(() -> Application.handle(request, response)); } } class DatabaseManager { DBConnection open() { var user = Server.CURRENT_USER.get(); yog (!user.canOpen()) pov tshiab InvalidUserException(); rov qab tshiab DBConnection(...); }}
  • Qhov thib ob saib ua ntej ntawm cov ntaub ntawv cov qauv tau raug ntxiv, txuas ntxiv cov qauv sib txuam feature qhia hauv Java 16 los txheeb xyuas qhov tseem ceeb ntawm cov chav kawm ntawv. Piv txwv li: record Point(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); }}
  • Qhov thib plaub ua ntej kev siv ntawm cov qauv sib txuam hauv "hloov" cov lus tau ntxiv, tso cai rau "cov ntaub ntawv" cov ntawv siv tsis muaj qhov tseeb, tab sis cov qauv hloov pauv uas npog cov txiaj ntsig ntawm ib zaug, uas yav tas los yuav tsum tau siv cumbersome. chains ntawm "yog...lse" kab lus. static String formatterPatternSwitch(Object obj) {return switch (obj) { case Integer i -> String.format("int %d", i); case Long l -> String.format("ntev %d", l); case Ob chav d -> String.format("ob npaug %f", d); case String s -> String.format("String %s", s); default -> o.toString(); }; }
  • Qhov thib ob qhov kev siv ua ntej ntawm FFM (Foreign Function & Memory) API tau ntxiv, uas tso cai rau koj los teeb tsa kev sib cuam tshuam ntawm Java cov kev pab cuam nrog cov lej sab nraud thiab cov ntaub ntawv los ntawm kev hu xov tooj los ntawm cov tsev qiv ntawv sab nraud thiab nkag mus rau lub cim xeeb sab nraum JVM.
  • Qhov thib ob saib ua ntej ntawm cov xov virtual tau raug ntxiv, uas yog cov xov sib sib zog uas ua kom yooj yim sau ntawv thiab tswj kev ua tau zoo ntawm ntau txoj xov zoo.
  • Ntxiv qhov kev sim thib ob API rau kev sib koom ua ke, uas ua kom yooj yim rau kev txhim kho ntawm ntau cov ntawv thov los ntawm kev kho ntau yam dej num khiav hauv cov xov sib txawv raws li ib qho thaiv.
  • Ib qho kev saib ua ntej thib tsib 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.

Tau qhov twg los: opennet.ru

Ntxiv ib saib