Rhyddhad Java SE 20

Ar ôl chwe mis o ddatblygiad, mae Oracle wedi rhyddhau platfform Java SE 20 (Java Platform, Standard Edition 20), sy'n defnyddio prosiect ffynhonnell agored OpenJDK fel gweithrediad cyfeirio. Ac eithrio dileu rhai nodweddion anghymeradwy, mae Java SE 20 yn cynnal cydnawsedd yn ôl â datganiadau blaenorol y platfform Java - bydd y rhan fwyaf o brosiectau Java a ysgrifennwyd yn flaenorol yn dal i weithio heb eu haddasu pan fyddant yn cael eu rhedeg o dan y fersiwn newydd. Mae adeiladau gosodadwy o Java SE 20 (JDK, JRE, a Server JRE) yn cael eu paratoi ar gyfer Linux (x86_64, AArch64), Windows (x86_64), a macOS (x86_64, AArch64). Wedi'i ddatblygu gan y prosiect OpenJDK, mae gweithrediad cyfeirio Java 20 yn ffynhonnell agored lawn o dan y drwydded GPLv2 gydag eithriadau GNU ClassPath i ganiatáu cysylltu deinamig â chynhyrchion masnachol.

Mae Java SE 20 wedi'i gategoreiddio fel datganiad cymorth rheolaidd, gyda diweddariadau i'w rhyddhau cyn y datganiad nesaf. Dylai'r gangen Cymorth Hirdymor (LTS) fod yn Java SE 17, a fydd yn derbyn diweddariadau tan 2029. Dwyn i gof bod y prosiect, gan ddechrau gyda rhyddhau Java 10, wedi newid i broses ddatblygu newydd, sy'n awgrymu cylch byrrach ar gyfer ffurfio datganiadau newydd. Mae swyddogaethau newydd bellach yn cael eu datblygu mewn un brif gangen sy'n cael ei diweddaru'n gyson, sy'n ymgorffori newidiadau sydd eisoes wedi'u cwblhau ac y caiff canghennau eu canghennu bob chwe mis ohoni i sefydlogi datganiadau newydd.

Mae nodweddion newydd yn Java 20 yn cynnwys:

  • Mae cefnogaeth ragarweiniol i Werthoedd Cwmpasedig, gan ganiatáu i ddata na ellir ei gyfnewid gael ei rannu ar draws edafedd a chyfnewid data yn effeithlon rhwng edafedd plentyn (mae gwerthoedd yn cael eu hetifeddu). Mae Gwerthoedd Cwmpasedig yn cael eu datblygu i ddisodli'r mecanwaith newidynnau edau-lleol ac maent yn fwy effeithlon wrth ddefnyddio niferoedd mawr iawn o edafedd rhithwir (miloedd neu filiynau o edafedd). Y prif wahaniaeth rhwng Gwerthoedd Cwmpasedig a newidynnau edau-lleol yw bod y cyntaf yn cael ei ysgrifennu unwaith, na ellir ei newid yn y dyfodol, a'i fod yn parhau i fod ar gael dim ond am gyfnod gweithredu'r edefyn. Gweinydd dosbarth { ScopedValue statig terfynol CURRENT_USER = ScopedValue newydd(); gweini gwag(Cais cais, Ymateb ymateb) { var level = (cais. isAuthorized()? ADMIN : GUEST); var defnyddiwr = Defnyddiwr newydd (lefel); ScopedValue.where(CURRENT_USER, defnyddiwr).run(() -> Application.handle(cais, ymateb)); } } dosbarth DatabaseManager { DBConnection open() { var user = Server.CURRENT_USER.get(); os (!user.canOpen()) taflu InvalidUserException(); dychwelyd DBConnection newydd(...); } }
  • Mae ail ragolwg o batrymau cofnod wedi'i ychwanegu, gan ymestyn y nodwedd paru patrwm a gyflwynwyd yn Java 16 i ddosrannu gwerthoedd dosbarthiadau cofnodion. Er enghraifft: cofnodwch Point(int x, int y) {} statig gwag printSum(Object obj) { if (obj instanceof Point p) { int x = px(); int y = py(); System.out.println(x+y); } }
  • Mae pedwerydd gweithrediad rhagarweiniol paru patrymau mewn datganiadau “switsh” wedi'i ychwanegu, gan ganiatáu i labeli “achos” ddefnyddio nid gwerthoedd union, ond patrymau hyblyg sy'n cwmpasu cyfres o werthoedd ar unwaith, y bu'n rhaid defnyddio'n feichus ar eu cyfer yn flaenorol. cadwyni o ymadroddion “os...arall”. fformatydd Llinynnol statigPatternSwitch(Object obj) { switsh dychwelyd (obj) { achos Cyfanrif i -> String.format("int %d", i); cas Hir l -> String.format ("hir %d", l); cas Dwbl d -> String.format("dwbl %f", d); case String s -> String.format("Llinyn %s", s); rhagosodedig -> o.toString(); }; }
  • Mae ail weithrediad rhagarweiniol o'r API FFM (Swyddogaeth a Chof Tramor) wedi'i ychwanegu, sy'n eich galluogi i drefnu rhyngweithio rhaglenni Java â chod a data allanol trwy swyddogaethau galw o lyfrgelloedd allanol a chyrchu cof y tu allan i'r JVM.
  • Mae ail ragolwg o edafedd rhithwir wedi'i ychwanegu, sef edafedd ysgafn sy'n symleiddio ysgrifennu a chynnal cymwysiadau aml-edau perfformiad uchel yn fawr.
  • Ychwanegwyd ail API arbrofol ar gyfer cyfochredd strwythuredig, sy'n symleiddio datblygiad cymwysiadau aml-edau trwy drin tasgau lluosog sy'n rhedeg mewn gwahanol edafedd fel un bloc.
  • Mae pumed rhagolwg o'r Vector API wedi'i ychwanegu, gan ddarparu swyddogaethau ar gyfer cyfrifiadau fector sy'n cael eu perfformio gan ddefnyddio cyfarwyddiadau fector ar broseswyr x86_64 ac AArch64 a chaniatáu i weithrediadau gael eu cymhwyso ar yr un pryd i werthoedd lluosog (SIMD). Yn wahanol i'r galluoedd a ddarperir yn y casglwr HotSpot JIT ar gyfer auto-fectoreiddio gweithrediadau sgalar, mae'r API newydd yn ei gwneud hi'n bosibl rheoli fectoreiddio yn benodol ar gyfer prosesu data cyfochrog.

Ffynhonnell: opennet.ru

Ychwanegu sylw