Java SE 17 kuburitswa

Mushure memwedzi mitanhatu yebudiriro, Oracle yakaburitsa Java SE 17 (Java Platform, Standard Edition 17) chikuva, icho chinoshandisa OpenJDK yakavhurika sosi purojekiti sereferensi yekushandisa. Kunze kwekubviswa kwemamwe maficha akaregwa, Java SE 17 inochengetedza kuenderana nekumashure kuburitswa kweJava papuratifomu-akawanda akanyorwa kare mapurojekiti eJava acharamba achishanda pasina kugadziridzwa kana ichiitwa pasi peiyo vhezheni itsva. Inogadzika inovakwa yeJava SE 17 (JDK, JRE, uye Server JRE) yakagadzirirwa Linux (x86_64, AArch64), Windows (x86_64), uye macOS (x86_64, AArch64). Yakagadzirwa neiyo OpenJDK purojekiti, iyo Java 17 referensi yekumisikidza yakavhurwa sosi pasi peGPLv2 rezinesi ine GNU ClassPath kunze kwekubvumira kubatanidza kune zvigadzirwa zvekutengesa.

Java SE 17 inorongedzerwa sekuburitswa Kwenguva Yakareba Rutsigiro (LTS), iyo icharamba ichiwana zvigadziriso kusvika 2029. Zvigadziriso zveiyo yapfuura Java 16 mitsetse kuburitswa yakamiswa. Iyo yapfuura LTS bazi reJava 11 richatsigirwa kusvika 2026. Iyo inotevera LTS kuburitswa yakarongerwa Gunyana 2024. Ngatikuyeuchidzei kuti kutanga nekuburitswa kweJava 10, purojekiti yakachinjira kune imwe nzira yekuvandudza, zvichireva kupfupika kutenderera kwekuumbwa kwezvitsva zvinoburitswa. Kushanda kutsva kwave kugadziridzwa mune rimwe rinogara rakagadziridzwa master bazi, iro rinosanganisira yakagadzirira-yakagadzirwa shanduko uye kubva kune iyo matavi anoiswa matavi mwedzi mitanhatu yega yega kudzikamisa zvitsva zvinoburitswa.

Zvinhu zvitsva muJava 17 zvinosanganisira:

  • Kuitwa kwekuedza kwemaitiro ekufananidza mu "switch" mataurirwo anotsanangurwa, ayo anobvumira kushandisa kwete chaiyo kukosha mune "kesi" mavara, asi anochinjika matemplate anofukidza akateedzana ehukoshero kamwechete, iyo yaimbove yakakosha kushandisa zvinorema. maketani ekuti β€œkana...zvimwe” matauriro. Mukuwedzera, "chinja" inokwanisa kubata NULL tsika. Chinhu o = 123L; Tambo yakarongwa = chinja (o) {nyaya Integer i -> String.format("int%d", i); nyaya Yakareba l -> String.format("refu%d", l); case Kaviri d -> String.format("double %f", d); case String s -> String.format("String%s", s); default -> o.toString(); };
  • Rutsigiro rwakadzikama rwemakirasi akavharwa uye mainterfaces, ayo asingakwanise kushandiswa nemamwe makirasi uye mainterface kuti atore nhaka, kuwedzera, kana kupfuudza kuita. Makirasi akaiswa chisimbiso anopawo nzira inozivisa yekudzora kushandiswa kweyepamusoro pane yekuwana modhifita, zvichibva pakunyora zvakajeka madiki madiki anotenderwa kuwedzera. package com.example.geometry; kirasi yakavharwa yeruzhinji Maumbirwo emvumo com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {…}
  • Yechipiri yekutarisa yeVector API inotsanangurwa, iyo inopa mabasa ekuverenga vector ayo anoitwa uchishandisa vector rairo pa x86_64 uye AArch64 processors uye inobvumira mashandiro kuti ashandiswe panguva imwe chete kune akawanda ma values ​​(SIMD). Kusiyana nehunyanzvi hwakapihwa muHotSpot JIT compiler ye auto-vectorization ye scalar mashandiro, iyo API nyowani inoita kuti zvikwanise kudzora zvakajeka vectorization yekuenderana data data.
  • Yakawedzera tarisiro yeKune dzimwe nyika Basa & Memory API, iyo inobvumira maapplication kupindirana nekodhi uye data kunze kweJava yekumhanya. Iyo API nyowani inokutendera kuti unyatso kufona asiri-JVM mabasa uye kuwana isiri-JVM-inogadziriswa ndangariro. Semuenzaniso, unogona kufonera mabasa kubva kunze akagovaniswa maraibhurari uye yekuwana process data pasina kushandisa JNI.
  • Iyo macOS inopa injini inopa simba Java 2D API, iyo inozopa simba iyo Swing API, yakagadziridzwa kushandisa Metal graphics API. Iyo macOS chikuva inoramba ichishandisa OpenGL nekukasira, uye kugonesa Tsitsi yesimbi kunoda kuseta "-Dsun.java2d.metal=true" uye kanenge ichimhanya macOS 10.14.x.
  • Yakawedzera chiteshi cheiyo macOS/AArch64 chikuva (Apple makomputa akavakirwa pane itsva Apple M1 chips). Chinhu chakakosha chechiteshi itsigiro yeW ^ X (Nyora XOR Execute) ndangariro yekudzivirira nzira, umo mapeji endangariro haagone kuwanikwa panguva imwe chete pakunyora nekuita. (kodhi inogona kuitwa chete mushure mekunge kunyora kwavharwa, uye kunyora kune peji rendangariro zvinogoneka chete mushure mekuuraya kwakadzimwa).
  • Kudzoserwa pakushandisa chete strictfp semantics yeinoyangarara point mataurirwo. Tsigiro ye "default" semantics, iripo kubva pakuburitswa kweJava 1.2, yakamiswa, kusanganisira kurerutswa kwekushanda pamasystem ane ekare x87 math coprocessors (mushure mekuuya kwemirairo yeSSE2, kudiwa kwekuwedzera semantics kwakanyangarika).
  • Mhando nyowani dzemainterfaces kune pseudorandom nhamba jenareta dzakaitwa, uye mamwe maalgorithms akaiswa kuitira chizvarwa chiri nani chenhamba dzisina kurongeka. Zvishandiso zvinopihwa mukana wekusarudza algorithm yekugadzira nhamba dzepseudorandom. Rutsigiro rwakavandudzwa rwekugadzira zvinhu zvisina tsarukano zvinoyerera.
  • Kusimbisa kuvharirwa kwakasimba kwevose vari mukati meJDK, kunze kweakakosha maAPI akadai sun.misc.Unsafe. Strict encapsulation inovharira kuedza kubva kukodhi kuti uwane makirasi emukati, nzira, uye minda. Kare, yakasimba encapsulation mode yaigona kuvharwa uchishandisa "--illegal-access=permit" sarudzo, asi izvi zvave kuregwa. Zvishandiso zvinoda kuwana makirasi emukati, nzira, uye minda zvinofanirwa kutsanangura zvakajeka uchishandisa iyo --add-inovhura sarudzo kana iyo Add-Opens hunhu mu manifest file.
  • Zvishandiso zvinopihwa kugona kutsanangura data deerialization mafirita, ayo anogona kuve anotarisisa mamiriro uye ane simba akasarudzwa zvichibva pane chaiyo deserialization mashandiro. Mafirita akatsanangurwa anoshanda kune yese virtual muchina (JVM-wide), i.e. inovhara kwete chete iyo application pachayo, asiwo yechitatu-bato raibhurari anoshandiswa mukushandisa.
  • Swing yakawedzera iyo javax.swing.filechooser.FileSystemView.getSystemIcon nzira yekuisa zvidhori zvakakura kuvandudza UI pane High DPI skrini.
  • Iyo java.net.DatagramSocket API inopa rutsigiro rwekubatanidza kumapoka eMulticast pasina kudiwa kweyakasiyana java.net.MulticastSocket API.
  • Iyo IGV (Ideal Graph Visualizer) yekushandisa yakagadziridzwa, ichipa inopindirana yekuona yepakati kodhi inomiririra muHotSpot VM C2 JIT compiler.
  • MuJavaDoc, nekuenzanisa nejavac compiler, kana chikanganiso chabuda, nhamba yemutsara une dambudziko mufaira rekubva uye nzvimbo yekukanganisa zvino yaratidzwa.
  • Yakawedzera native.encoding pfuma, inoratidza zita reiyo system character encoding (UTF-8, koi8-r, cp1251, nezvimwewo).
  • Iyo java.time.InstantSource interface yawedzerwa, ichibvumira kushandura nguva pasina kutaura nezvenguva yenzvimbo.
  • Yakawedzera java.util.HexFormat API yekuchinjisa kune hexadecimal inomiririra uye zvichipesana.
  • A blackhole mode yakawedzerwa kune iyo compiler, iyo inodzivisa kufa-code kubvisa mashandiro, ayo anogona kushandiswa pakuitisa bvunzo dzekuita.
  • Yakawedzera "-Xlog: async" sarudzo kuRuntime kurekodha matanda mune asynchronous mode.
  • Pakumisikidza hukama hwakachengeteka, TLS 1.3 inogoneswa nekusarudzika (yaimbova TLS 1.2 yaishandiswa).
  • Applet API yakambozivikanwa kuti yapera (java.applet.Applet*, javax.swing.JApplet), iyo yakashandiswa kufambisa maapplication eJava mubrowser, yaendeswa kuchikamu chezvakatemerwa kubviswa (kurasika kukosha mushure mekupera kwerutsigiro. yeJava plugin yemabhurawuza).
  • Chengetedzo Maneja, uyo anga arasa kukosha kwayo uye akazove asina kutaurwa mushure mekupera kwerutsigiro rwebrowser plugin, yaendeswa kuchikamu cheavo vakarongerwa kubviswa.
  • Iyo RMI Activation mechanism yakabviswa, iyo yakare, yakasiiwa kune chikamu chesarudzo muJava 8 uye haisati yamboshandiswa mukuita kwemazuva ano.
  • Muumbi wekuyedza anotsigira JIT (ichango-mu-nguva) yekubatanidza ine simba yeJava kodhi yeHotSpot JVM, pamwe nemaitiro ekufungidzira kuunganidzwa (AOT, pamberi-ye-nguva) emakirasi kuita kodhi yemuchina usati watanga iwo chaiwo muchina. , yakabviswa kubva kuSDK. Iyo compiler yakanyorwa muJava uye zvichibva pane basa reGraal chirongwa. Zvinocherechedzwa kuti compiler kugadzirisa inoda basa rakawanda, iro harina kurongeka kana pasina chinodiwa kubva kuvagadziri.

Source: opennet.ru

Voeg