Java SE 17 la sii daayay

Lix bilood oo horumarineed ka dib, Oracle wuxuu siidaayay Java SE 17 (Java Platform, Standard Edition 17), kaas oo u adeegsada mashruuca isha furan ee OpenJDK hirgelinta tixraac ahaan. Marka laga reebo ka saarista qaar ka mid ah sifooyinka la dhimay, Java SE 17 waxay ilaalinaysaa iswaafajinta dib-u-dhacyada hore ee madal Java-mashruucyadii hore ee Java ee hore loo qoray waxay wali shaqayn doonaan iyada oo aan wax laga beddelin marka lagu hoos shaqeeyo nooca cusub. U diyaarsan in la rakibo dhismooyinka Java SE 17 (JDK, JRE, iyo Server JRE) ayaa loo diyaariyey Linux (x86_64, AArch64), Windows (x86_64), iyo macOS (x86_64, AArch64). Waxaa sameeyay mashruuca OpenJDK, hirgelinta tixraaca Java 17 si buuxda ayuu u furan yahay iyada oo hoos timaada shatiga GPLv2 ee ka reeban GNU ClassPath si loogu oggolaado isku xidhka firfircoon ee alaabada ganacsiga.

Java SE 17 waxaa loo kala saaray sidii Taageerada Muddada Dheer (LTS), taasoo sii wadi doonta inay hesho cusboonaysiinta ilaa 2029. Cusboonaysiinta kii hore ee Java 16 kii ka horeeyay siidaynta waa la joojiyay. Laantii hore ee LTS ee Java 11 waa la taageeri doonaa ilaa 2026. Siideynta xigta ee LTS waxaa loo qorsheeyay Sebtembar 2024. Aan ku xasuusino in laga bilaabo siideynta Java 10, mashruucu u wareegay hannaan horumarineed oo cusub, taasoo ka dhigan wareeg gaaban oo loogu talagalay samaynta sii deynta cusub. Hawsha cusub ayaa hadda lagu sameeyay mid si joogto ah loo cusboonaysiiyay, oo ay ku jiraan isbeddelada diyaarka ah iyo kuwa laamihiisu la sii daayo lixdii biloodba mar si loo dejiyo sii deynta cusub.

Tilmaamaha cusub ee Java 17 waxaa ka mid ah:

  • Hirgelinta tijaabada ah ee qaabka iswaafajinta ee tibaaxaha "switch" ayaa la soo jeediyay, taas oo u oggolaanaysa isticmaalka qiimaha aan saxda ahayn ee calaamadaha "kiis", laakiin qaabab dabacsan oo daboolaya qiyam taxane ah hal mar, kuwaas oo markii hore ay lagama maarmaan ahayd in la isticmaalo ciriiri. silsilado "haddii...kale" tibaaxaha. Intaa waxaa dheer, "switch" waxay awood u leedahay inay xakameyso qiyamka NULL. Shayga o = 123L; Xarig habaysan = beddel (o) { case Integer i -> String.format ("int %d", i); kiiska Long l -> String.format("dheer %d", l); Kiis Double d -> String.format("laba %f", d); case String s -> String.format("String %s", s); default -> o.toString (); };
  • Taageero xasiloon oo loogu talagalay fasallada xiran iyo is-dhex-galka, kuwaas oo aan isticmaali karin fasallo kale iyo is-dhexgal si ay u dhaxlaan, u fidiyaan, ama u joojiyaan hirgelinta. Fasallada la xidhay waxay sidoo kale bixiyaan hab caddaynaya oo lagu xaddidayo isticmaalka heer sare marka loo eego gelitaanka wax ka beddelayaasha, iyadoo lagu salaynayo si cad oo loo taxay fasal-hoosaadyadii loo oggolaaday kordhinta. xirmo com.example.geometry; Qaabka guud ee shaabadaysan wuxuu ogol yahay com.tusaale.polar.Circle, com.example.quad.Rectangle, com.example.quad.fudud.Square {…}
  • Horudhac labaad oo ah Vector API ayaa la soo jeediyay, kaas oo bixiya hawlaha xisaabinta vector ee lagu fuliyo iyada oo la adeegsanayo tilmaamaha vector ee x86_64 iyo AArch64 soo-saareyaal una oggolaanaya hawlgallada in lagu dabaqo isku mar qiyamyo badan (SIMD). Si ka duwan awoodaha lagu bixiyo HotSpot JIT compiler ee auto-vectorization ee hawlaha scalar, API-ga cusub waxa uu suurtogal ka dhigayaa in si cad loo xakameeyo vectorization ee habaynta xogta barbar socota.
  • Waxaa lagu daray dulmar ku saabsan Shaqada Ajaanibka & Xusuusta API, taasoo u oggolaanaysa codsiyada inay la falgalaan koodka iyo xogta ka baxsan wakhtiga shaqada Java. API-ga cusub wuxuu kuu ogolaanayaa inaad si hufan u wacdo hawlaha aan JVM ahayn oo aad gasho xusuusta aan JVM-maareyn. Tusaale ahaan, waxaad wici kartaa hawlaha maktabadaha la wadaago ee dibadda iyo helitaanka xogta habka adiga oo aan isticmaalin JNI.
  • Matoorka samaynta macOS ee awooda Java 2D API, kaas oo isna awooda Swing API, ayaa loo habeeyey isticmaalka garaafyada birta API. Qalabka macOS wuxuu sii wadaa inuu isticmaalo OpenGL si caadi ah, iyo awoodsiinta taageerada birta waxay u baahan tahay dejinta "-Dsun.java2d.metal= run" iyo ugu yaraan socodsiinta macOS 10.14.x.
  • Waxaa lagu daray deked loogu talagalay macOS/AArch64 madal (Kombuyuutarrada Apple oo ku salaysan chips-ka cusub ee Apple M1). Muuqaalka gaarka ah ee dekeddu waa taageerada habka ilaalinta xusuusta ee W^X (Qor XOR Execute), kaas oo boggaga xusuusta aan isku mar la geli karin qoraal iyo fulin. (koodka waxaa la fulin karaa oo keliya ka dib marka qorista la joojiyo, iyo qorista bogga xusuusta waxay suurtogal tahay oo kaliya ka dib marka la joojiyo).
  • Dib loogu celiyay adeegsiga semantics strictfp ee tibaaxaha sabbaynaya. Taageerada semantics "default", oo la heli karo tan iyo markii la sii daayay Java 1.2, waa la joojiyay, oo ay ku jiraan fududaynta ka shaqaynta nidaamyada leh x87 coprocessors xisaab aad u da' weyn (ka dib imaatinka tilmaamaha SSE2, baahida loo qabo semantics dheeraad ah la waayay).
  • Noocyo cusub oo is-dhexgal ah oo soo saarayaasha nambarada beenta ah ayaa la hirgeliyay, algorithms dheeraad ah ayaa loo hirgeliyay jiil ka wanaagsan tirooyinka random. Codsiyada waxaa la siiyaa fursad ay ku doortaan algorithm si ay u abuuraan tirooyinka beenta ah. Taageerada la wanaajiyay ee abuuritaanka durdurrada shayga random
  • Dhaqangelinta adag ee dhammaan gudaha JDK, marka laga reebo API-yada muhiimka ah sida sun.misc.Unammaan. Soo koobid adag ayaa xannibaysa isku dayga koodka si loo galo xiisadaha gudaha, hababka, iyo goobaha. Markii hore, hab-dajin adag waa la curyaami karaa iyadoo la adeegsanayo ikhtiyaarka "--illegal-access=permit", laakiin kan hadda waa la joojiyay. Codsiyada u baahan gelitaanka fasallada gudaha, hababka, iyo goobaha waa inay si cad u qeexaan iyaga oo isticmaalaya --add-opens ikhtiyaarka ama sifada ku-dar-furnaanta faylka muuqda.
  • Codsiyada waxaa la siiyaa awoodda ay ku qeexaan filtarrada kala-soocidda xogta, kuwaas oo noqon kara xaalad xasaasi ah oo si firfircoon loo doortay iyadoo lagu salaynayo hawlgallo gaar ah. Shaandhooyinka la cayimay waxay khuseeyaan dhammaan mishiinka farsamada (JVM-ballaaran), i.e. Dabool ma aha oo kaliya codsiga laftiisa, laakiin sidoo kale maktabadaha qolo saddexaad ee loo isticmaalo codsiga.
  • Swing waxa uu ku daray javax.swing.filechooser.FileSystemView.getSystemIcon si loo raro calaamado waaweyn si loo horumariyo UI ee shaashadaha sare ee DPI.
  • Java.net.DatagramSocket API waxa ay taageertaa isku xidhka kooxaha Multicast-ka iyada oo aan loo baahnayn java.net.MulticastSocket API gaar ah.
  • Adeegga IGV (Ideal Graph Visualizer) waa la hagaajiyay, iyadoo bixinaysa muuqaal is dhexgal ah oo matalida koodka dhexe ee HotSpot VM C2 JIT compiler.
  • JavaDoc, iyada oo la barbardhigaysa kumbuyuutarka javac, marka khaladku soo baxo, tirada xariiqda dhibaatada leh ee faylka isha iyo meesha qaladku hadda waa la tilmaamayaa.
  • Waxaa lagu daray native.encoding hantida, oo ka tarjumaysa magaca nidaamka codeeynta (UTF-8, koi8-r, cp1251, iwm.).
  • Interface-ka java.time.InstantSource ayaa lagu daray, taas oo u oggolaanaysa in waqti lagu dhaqmo iyada oo aan loo eegin aagga wakhtiga.
  • Waxaa lagu daray java.util.HexFormat API si loogu beddelo matalaadda hexadecimal iyo lidkeeda.
  • Habka blackhole ayaa lagu daray isku-duwaha, kaas oo curyaaminaya hawlgallada ciribtirka koodka dhintay, kaas oo la isticmaali karo marka la samaynayo imtixaannada waxqabadka.
  • Waxaa lagu daray "-Xlog:async" ikhtiyaarka Runtime si loo duubo diiwaanka qaabka asynchronous.
  • Marka la samaynayo xidhiidho sugan, TLS 1.3 waxa loo daaraa si toos ah (hore TLS 1.2 ayaa la isticmaalay).
  • Applet API ee hore loogu dhawaaqay (java.applet.Applet*, javax.swing.JApplet), kaas oo loo isticmaalay in lagu socodsiiyo codsiyada Java browserka, ayaa loo raray qaybta loo qorsheeyay in meesha laga saaro ( lumay khusayntu ka dib dhamaadka taageerada loogu talagalay plugin-ka Java ee daalacashada).
  • Maareeyaha Amniga, kaas oo muddo dheer tan iyo markii uu lumay ku habboonaantiisa oo uu noqday mid aan la sheegan ka dib dhammaadka taageerada plugin browserka, ayaa loo wareejiyay qaybta kuwa loo qorsheeyay in meesha laga saaro.
  • Habka firfircoonida ee RMI waa laga saaray, kaas oo duugoobay, dib loogu celiyay qaybta ikhtiyaarka ee Java 8 oo aan waligeed loo isticmaalin dhaqanka casriga ah.
  • Soo-sameeyaha tijaabada ah ee taageera JIT (waqtiga kaliya) ee isku-dhafka firfircoon ee koodhka Java ee HotSpot JVM, iyo sidoo kale qaabka isku-dubbaridka la filayo (AOT, ka hor) ee fasallada koodka mashiinka ka hor inta aan la bilaabin mashiinka farsamada , ayaa laga saaray SDK. Isku-dubariduhu waxa lagu qoray Java oo ku salaysan shaqada mashruuca Graal. Waxaa la xusay in dayactirka isku-darka uu u baahan yahay shaqo badan, taas oo aan sabab lahayn marka aysan jirin baahi ka timid horumarinta.

Source: opennet.ru

Add a comment