Mwepụta Java SE 17

Mgbe ọnwa isii nke mmepe gachara, Oracle wepụtara Java SE 17 (Java Platform, Standard Edition 17), nke na-eji mmemme isi mmalite OpenJDK dị ka mmejuputa nrụtụ aka ya. Ewezuga mwepụ nke ụfọdụ njirimara anaghị akwụ ụgwọ, Java SE 17 na-akwado ndakọrịta azụ na mwepụta ndị gara aga nke ikpo okwu Java - ọrụ Java edeburu na mbụ ga-arụ ọrụ na-enweghị mgbanwe mgbe ọ na-agba ọsọ n'okpuru ụdị ọhụrụ. Njikere maka ịwụnye Java SE 17 (JDK, JRE na Server JRE) dị njikere maka Linux (x86_64, AArch64), Windows (x86_64) na macOS (x86_64, AArch64). Emepụtara site na ọrụ OpenJDK, mmejuputa ntụaka Java 17 bụ isi mmalite mepere emepe n'okpuru ikikere GPLv2, yana ndị GNU ClassPath na-enye ohere ijikọ ike na ngwaahịa azụmahịa.

Java SE 17 bụ nkewa dị ka ntọhapụ ogologo oge (LTS), nke ga-aga n'ihu na-enweta mmelite ruo 2029. Mmelite maka ntọhapụ dị ịrịba ama Java 16 gara aga akwụsịla. A ga-akwado ngalaba LTS gara aga nke Java 11 ruo 2026. Edebere mwepụta LTS ọzọ maka Septemba 2024. Ka anyị chetara gị na malite na ntọhapụ nke Java 10, ọrụ ahụ gbanwere na usoro mmepe ọhụrụ, na-egosi usoro dị mkpirikpi maka ịmepụta mwepụta ọhụrụ. A na-emepụta ọrụ ọhụrụ ugbu a n'otu alaka ụlọ ọrụ na-emelite mgbe niile, nke gụnyere mgbanwe ndị emebere na nke a na-esi na ya na-esi na alaka ụlọ ọrụ na-arụ ọrụ kwa ọnwa isii iji kwadoo mwepụta ọhụrụ.

Ihe ọhụrụ dị na Java 17 gụnyere:

  • A na-atụ aro mmejuputa nnwale nke ụkpụrụ dabara na okwu “gbanwee”, nke na-enye ohere iji ọ bụghị ụkpụrụ ziri ezi na akara “ikpe”, mana ndebiri na-agbanwe agbanwe na-ekpuchi usoro ụkpụrụ n'otu oge, nke mbụ ọ dị mkpa iji dị egwu. agbụ nke okwu "ọ bụrụ ... ọzọ". Na mgbakwunye, "mgbanwe" nwere ikike ijikwa ụkpụrụ NULL. Ihe o = 123L; Eriri eriri = mgba ọkụ (o) { case Integer i -> String.format("int%d", i); ikpe Ogologo l -> String.format("ogologo%d", l); ikpe Ugboro abụọ d -> String.format ("okpukpu% f", d); case String s -> String.format("Ụdọ %s", s); ndabara -> o.toString (); };
  • Nkwado kwụsiri ike maka klaasị na oghere ndị agbachiri, nke klaasị na oghere ndị ọzọ enweghị ike iji keta, ịgbatị, ma ọ bụ kagbuo mmejuputa atumatu. Klaasị emechiri emechi na-enyekwa ụzọ nkọwapụta karịa iji gbochie ojiji nke klaasị karịa ịnweta modifiers, dabere na ịdepụta nke ọma klaasị obere anabatara maka ndọtị. ngwugwu com.example.geometry; klaasị ọhaneze akara Ụdị Ụdị ikike com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {…}
  • A na-atụpụta nlele nke abụọ nke Vector API, nke na-enye ọrụ maka mgbako vector nke ejiri ntuziaka vector na x86_64 na AArch64 processors wee kwe ka etinyere ọrụ n'otu oge n'ọtụtụ ụkpụrụ (SIMD). N'adịghị ka ike ndị e nyere na HotSpot JIT compiler maka auto-vectorization nke scalar arụmọrụ, API ọhụrụ na-eme ka o kwe omume ịchịkwa vectorization n'ụzọ doro anya maka myirịta data nhazi.
  • Etinyere nhụchalụ nke Ọrụ Mba Ọzọ & Ebe nchekwa API, nke na-enye ohere iji koodu na data na-emekọrịta ihe na-abụghị oge ọsọ Java. API ọhụrụ ahụ na-enye gị ohere ịkpọ ọrụ ndị na-abụghị JVM nke ọma wee nweta ebe nchekwa na-abụghị JVM jikwaa. Dịka ọmụmaatụ, ịnwere ike ịkpọ ọrụ site na ọba akwụkwọ nkekọrịta mpụga wee nweta data nhazi na-ejighi JNI.
  • Igwe nrụgharị macOS nke na-akwado Java 2D API, nke na-enye ike Swing API, ka emezigharịrị iji Metal graphics API. Ikpokoro macOS na-aga n'ihu na-eji OpenGL na ndabara, yana inye nkwado metal chọrọ ịtọ ntọala "-Dsun.java2d.metal=ezi" ma ọ dịkarịa ala na-agba macOS 10.14.x.
  • Agbakwunyere ọdụ ụgbọ mmiri maka ikpo okwu macOS/AArch64 (kọmputa Apple dabere na ibe Apple M1 ọhụrụ). Akụkụ pụrụ iche nke ọdụ ụgbọ mmiri bụ nkwado maka usoro nchekwa nchekwa W^X (Dee XOR Execute), nke enweghị ike ịnweta ibe ebe nchekwa n'otu oge maka ide na igbu. (Enwere ike igbu koodu naanị mgbe enwere nkwarụ ederede, yana ide akwụkwọ na ibe ebe nchekwa ga-ekwe omume naanị mgbe emechara ya).
  • Laghachiri n'iji naanị semantics strictfp maka okwu na-ese n'elu mmiri. Nkwado maka semantics “ndabere”, dị kemgbe ewepụtara Java 1.2, akwụsịla, gụnyere mfe maka ịrụ ọrụ na sistemu nwere nnukwu x87 mgbakọ na mwepụ coprocessors (mgbe ọbịbịa nke ntuziaka SSE2 gasịrị, mkpa maka semantics ndị ọzọ kwụsịrị).
  • Emejuputala ụdị ọhụụ ọhụrụ nke ndị na-emepụta nọmba pseudorandom, na emejuputakwara algọridim ndị ọzọ maka ọgbọ dị mma nke ọnụọgụ ọnụọgụ. A na-enye ngwa ohere ịhọrọ algọridim maka ịmepụta nọmba pseudorandom. Nkwado emelitere maka ịmepụta iyi ihe na-enweghị usoro.
  • Amanyere nkpuchi siri ike nke ndị internals JDK niile, ewezuga API dị oke egwu dịka sun.misc.Enweghị nchekwa. Mkpuchi siri ike na-egbochi mbọ site na koodu ịnweta klaasị, ụzọ na mpaghara ime. Na mbụ, enwere ike gbanyụọ ụdị mkpuchi mkpuchi siri ike site na iji nhọrọ "--illegal-access=permit", mana nke a emebiela. Ngwa chọrọ ịnweta klaasị, ụzọ na mpaghara kwesịrị ịkọwapụta ha nke ọma site na iji nhọrọ --add-opens ma ọ bụ njirimara Tinye-emepe na faịlụ ngosi.
  • Enyere ngwa ikike ịkọwapụta ihe nzacha data deserialization, nke nwere ike bụrụ ihe na-emetụta gburugburu ya na ike họrọ dabere na arụmọrụ deserialization akọwapụtara. Ihe nzacha ndị a kapịrị ọnụ na-adabara igwe mebere dum (JVM-wide), ya bụ. kpuchie ọ bụghị naanị ngwa n'onwe ya, kamakwa ọba akwụkwọ ndị ọzọ ejiri na ngwa ahụ.
  • Swing agbakwunyela usoro javax.swing.filechooser.FileSystemView.getSystemIcon iji wụnye nnukwu akara ngosi iji melite UI na ihuenyo DPI dị elu.
  • Java.net.DatagramSocket API na-enye nkwado maka ijikọ na otu Multicast na-enweghị mkpa maka java.net.MulticastSocket API dị iche.
  • Emeziwanye ike IGV (Ideal Graph Visualizer), na-enye nhụta mmekọrịta nke nnọchite anya koodu etiti na HotSpot VM C2 JIT compiler.
  • Na JavaDoc, site na ntụnyere na javac compiler, mgbe arụpụtaghị njehie, ọnụọgụ nke ahịrị nsogbu dị na faịlụ isi mmalite na ebe njehie ahụ na-egosi ugbu a.
  • Agbakwunyere ihe onwunwe native.encoding, na-egosipụta aha koodu ngbanwe agwa sistemụ (UTF-8, koi8-r, cp1251, wdg).
  • Agbakwunyela interface java.time.InstantSource, na-enye ohere ịmegharị oge na-enweghị ntụaka na mpaghara oge.
  • Agbakwunyere java.util.HexFormat API maka ịtụgharị gaa na nnọchite hexadecimal yana ọzọ.
  • Agbakwunyela ụdị blackhole na mkpokọta, nke na-ewepụ ọrụ mkpochapụ koodu nwụrụ anwụ, nke enwere ike iji mee ihe mgbe ị na-eme ule arụmọrụ.
  • Agbakwunyere nhọrọ "-Xlog:async" na oge ojiri gaa ka ịdekọ ndekọ na ọnọdụ asynchronous.
  • Mgbe ị na-ehiwe njikọ echekwara, TLS 1.3 na-enyere ya aka na ndabara (ejibu TLS 1.2 ejibu).
  • Applet API nke ekwuputala na mbụ (java.applet.Applet*, javax.swing.JApplet), bụ nke ejiri mee ngwa Java na ihe nchọgharị, ebugharịla na ụdị nke slated maka iwepụ (mmetụta efu mgbe njedebe nkwado gasịrị. maka ngwa mgbakwunye Java maka ihe nchọgharị).
  • Onye njikwa nchekwa, nke ogologo oge tụfuru uru ya wee pụta bụrụ onye a na-ekwupụtaghị ya mgbe njedebe nkwado maka ngwa mgbakwunye ihe nchọgharị, ebugharịla na ụdị nke ndị akwadoro iwepụ.
  • Ewepụla usoro ịgbalite RMI, nke emechiela, weghaara ya na ụdị nhọrọ na Java 8 na ọ fọrọ nke nta ka ọ bụrụ na ọ naghị eji ya eme ihe n'oge a.
  • Onye nchịkọta nnwale nke na-akwado JIT (nke dị n'oge) maka nchịkọta Java dị ike maka HotSpot JVM, yana usoro nke mkpokọta atụmanya (AOT, tupu oge) nke klaasị n'ime koodu igwe tupu ịmalite igwe mebere. , ewepụrụ na SDK. Edere onye nchịkọta ihe na Java ma dabere na ọrụ nke ọrụ Graal. A na-achọpụta na nhazi nke nchịkọta na-achọ ọrụ dị ukwuu, nke na-ezighị ezi mgbe ọ na-enweghị ihe ndị na-emepụta ihe.

isi: opennet.ru

Tinye a comment