Lix bilood oo horumar ah ka dib, Oracle waxay sii daysay barnaamijka Java SE 17 (Java Platform, Standard Edition 17), kaas oo u adeegsada mashruuca OpenJDK ee il furan hirgelinta tixraaca. Marka laga reebo ka saarista qaar ka mid ah sifooyinka aan la isticmaalin, Java SE 17 waxay ilaalisaa iswaafajinta gadaal ee sii deynta hore ee barnaamijka Java - mashaariicda Java ee hore loo qoray badankood waxba iskama beddeli doonaan marka ay ku shaqeeyaan nooca cusub. Dhismayaasha diyaarka u ah in la rakibo ee 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 waa il furan oo si buuxda u furan iyadoo la raacayo shatiga GPLv2 oo leh GNU ClassPath Exception, kaas oo u oggolaanaya isku xirka 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.
- Mashiinka wax soo saarka ee macOS, kaas oo bixiya Java 2D API, kaas oo isna loo isticmaalo Swing API, waxaa loo habeeyey inuu isticmaalo Metal graphics API. Caadi ahaan, madalku waxay leedahay astaamo u gaar ah oo loogu talagalay in lagu isticmaalo Metal graphics API. macOS OpenGL wali waa la isticmaalaa, awoodsiinta taageerada birta waxay u baahan tahay dejinta halbeegga "-Dsun.java2d.metal=true" iyo ugu yaraan sii deynta macOS 10.14.x
- Deked lagu daray madal macOS/AArch64 (Kombiyuutarrada Apple oo ku salaysan jajabyada cusub ee Apple M1). Astaan gaar ah oo dekeddan ah waa taageerada habka ilaalinta xusuusta ee W^X (Write XOR Execute), kaas oo ka hortagaya bogagga xusuusta inay isku mar noqdaan kuwo la qori karo oo la fulin karo. (Koodhka waxaa la fulin karaa oo keliya ka dib marka la joojiyo gelitaanka qorista, qorista bogga xusuustana waxay suurtogal tahay oo keliya ka dib marka la joojiyo gelitaanka fulinta.)
- 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.
- Barnaamijyadu hadda waxay awoodaan inay qeexaan shaandheeyayaasha loogu talagalay ka-saarista xogta, kuwaas oo noqon kara kuwo ku xiran macnaha guud oo si firfircoon loo dooran karo iyadoo lala kaashanayo hawlgallo gaar ah oo ka-saarista xogta. Shaandhooyinka aad qeexdo waxay khuseeyaan dhammaan mashiinka dalwaddii (JVM-ballaaran), tusaale ahaan waxay daboolayaan oo keliya codsiga laftiisa, laakiin sidoo kale maktabadaha dhinac 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
