Java SE 17 saki

Bayan watanni shida na ci gaba, Oracle ya fito da dandalin Java SE 17 (Java Platform, Standard Edition 17), wanda ke amfani da bude tushen aikin OpenJDK azaman aiwatar da tunani. Ban da cire wasu fasalolin da aka yanke, Java SE 17 yana kula da dacewa da baya tare da abubuwan da suka gabata na dandalin Java - yawancin ayyukan Java da aka rubuta a baya za su yi aiki ba tare da canje-canje ba yayin da suke gudana ƙarƙashin sabon sigar. Java SE 17 ginawa (JDK, JRE, da Server JRE) an shirya don Linux (x86_64, AArch64), Windows (x86_64), da macOS (x86_64, AArch64). An haɓaka ta aikin OpenJDK, aiwatar da tunani na Java 17 yana buɗewa gabaɗaya ƙarƙashin lasisin GPLv2 tare da keɓancewar GNU ClassPath don ba da damar haɗa kai ga samfuran kasuwanci.

Java SE 17 an rarraba shi azaman Tallafin Dogon Lokaci (LTS), wanda zai ci gaba da karɓar sabuntawa har zuwa 2029. An dakatar da sabuntawa don sakin abubuwan tarihi na Java 16 da suka gabata. Za a tallafawa reshen LTS na baya na Java 11 har zuwa 2026. An shirya sakin LTS na gaba don Satumba 2024. Bari mu tunatar da ku cewa farawa tare da sakin Java 10, aikin ya canza zuwa sabon tsarin ci gaba, yana nuna gajeriyar zagayowar don samuwar sabbin abubuwan. Sabbin ayyuka yanzu an haɓaka su a cikin reshe mai ɗaukaka koyaushe, wanda ya haɗa da shirye-shiryen sauye-sauye kuma daga waɗanda ake reshe rassan kowane wata shida don daidaita sabbin abubuwan da aka fitar.

Sabbin abubuwa a cikin Java 17 sun haɗa da:

  • An ba da shawarar aiwatar da aiwatar da gwaji na ƙirar ƙira a cikin maganganun "canzawa", wanda ke ba da damar yin amfani da ƙimar daidai ba a cikin alamun "harka", amma samfura masu sassauƙa waɗanda ke rufe jerin ƙimar lokaci ɗaya, wanda a baya ya zama dole don amfani da wahala. sarƙoƙi na "idan ... sauran" maganganu. Bugu da kari, “canjawa” yana da ikon sarrafa ƙimar NULL. Abun o = 123L; Tsarin igiya = canza (o) {harka Integer i -> String.format ("int %d", i); harka Dogon l -> String.format("dogon%d", l); harka Biyu d -> String.format("biyu%f", d); case String s -> String.format("String %s", s); tsoho -> o.toString (); };
  • Tsayayyen tallafi don azuzuwan hatimi da mu'amala, waɗanda wasu azuzuwan da mu'amala ba za su iya amfani da su ba don gado, ƙarawa, ko soke aiwatarwa. Har ila yau, azuzuwan da aka hatimce suna ba da ƙarin hanyar bayyanawa don taƙaita amfani da babban aji fiye da samun dama ga masu gyara, bisa la'akari da jera ƙananan azuzuwan da aka yarda don tsawaita. kunshin com.example.geometry; Siffar aji mai hatimi na jama'a yana ba da izini com.misali.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {…}
  • An gabatar da samfoti na biyu na Vector API, wanda ke ba da ayyuka don lissafin vector waɗanda aka aiwatar ta amfani da umarnin vector akan na'urori masu sarrafa x86_64 da AArch64 kuma suna ba da damar aiwatar da ayyuka a lokaci guda zuwa ƙima mai yawa (SIMD). Ba kamar iyawar da aka bayar a cikin HotSpot JIT mai tarawa don sarrafa kai-da-kai na ayyukan scalar, sabon API yana ba da damar sarrafa vectorization a sarari don sarrafa bayanai daidai gwargwado.
  • Ƙara samfoti na Ayyukan Waje & Ƙwaƙwalwar Ƙwaƙwalwar API, wanda ke ba da damar aikace-aikace don yin hulɗa tare da lamba da bayanai a wajen lokacin aikin Java. Sabuwar API tana ba ku damar kiran ayyukan da ba JVM ba da kyau da samun dama ga ƙwaƙwalwar da ba ta sarrafa JVM ba. Misali, zaku iya kiran ayyuka daga ɗakunan karatu na waje da samun damar aiwatar da bayanan ba tare da amfani da JNI ba.
  • Injin rendering na macOS wanda ke ba da ikon Java 2D API, wanda kuma ke ba da ikon Swing API, an daidaita shi don amfani da API ɗin ƙirar ƙarfe. Dandalin macOS yana ci gaba da amfani da OpenGL ta tsohuwa, kuma ba da damar tallafin ƙarfe yana buƙatar saita "-Dsun.java2d.metal= gaskiya" kuma aƙalla yana gudana macOS 10.14.x.
  • Ƙara tashar jiragen ruwa don dandamali na macOS / AArch64 (kwamfutar Apple dangane da sabbin kwakwalwan Apple M1). Wani fasali na musamman na tashar jiragen ruwa shine goyon baya ga tsarin kariya na ƙwaƙwalwar ajiya na W^X (Rubuta XOR Execute), wanda ba za a iya shiga shafukan ƙwaƙwalwar ajiya lokaci guda don rubutawa da aiwatarwa ba. (Za a iya aiwatar da lambar kawai bayan an kashe rubutu, kuma rubuta zuwa shafin ƙwaƙwalwar ajiya yana yiwuwa ne kawai bayan an kashe kisa).
  • Komawa zuwa amfani da tatsuniyoyi masu tsauri kawai don maganganu masu iyo. An dakatar da goyan bayan ma'anar "tsoho", wanda ake samu tun lokacin da aka saki Java 1.2, ciki har da sauƙaƙawa don aiki akan tsarin tare da tsofaffin x87 math coprocessors (bayan zuwan umarnin SSE2, buƙatar ƙarin ma'anar ta ɓace).
  • An aiwatar da sabbin nau'ikan mu'amala zuwa masu samar da lambar bazuwar, kuma an aiwatar da ƙarin algorithms don ingantacciyar ƙirƙirar lambobin bazuwar. Ana ba aikace-aikacen dama don zaɓar algorithm don ƙirƙirar lambobin pseudorandom. Ingantattun tallafi don samar da rafukan abubuwa bazuwar.
  • Ƙaddamar da ƙaƙƙarfan ɗaukar hoto na duk na JDK na ciki, ban da APIs masu mahimmanci kamar sun.misc.Unsafe. Ƙuntataccen ɓoyewa yana toshe ƙoƙari daga lamba don samun damar azuzuwan ciki, hanyoyi, da filayen. A baya can, ana iya kashe tsauraran yanayin ɗaukar hoto ta amfani da zaɓin "--illegal-access=permit", amma wannan yanzu an soke shi. Aikace-aikacen da ke buƙatar samun dama ga azuzuwan ciki, hanyoyi, da filayen yakamata su fayyace su a sarari ta amfani da zaɓin --add-buɗe ko sifa ta Ƙara-buɗewa a cikin bayanan bayanan.
  • Aikace-aikacen ana ba su ikon ayyana matattarar ɓarna bayanai, waɗanda za su iya zama mai hankali da zaɓaɓɓu bisa ƙayyadaddun ayyukan ɓarna. Abubuwan da aka kayyade suna aiki ga injin kama-da-wane (JVM-fadi), watau. rufe ba kawai aikace-aikacen kanta ba, har ma da ɗakunan karatu na ɓangare na uku da aka yi amfani da su a cikin aikace-aikacen.
  • Swing ya kara hanyar javax.swing.filechooser.FileSystemView.getSystemIcon don loda manyan gumaka don inganta UI akan manyan allon DPI.
  • API ɗin java.net.DatagramSocket yana ba da tallafi don haɗawa zuwa ƙungiyoyin Multicast ba tare da buƙatar keɓancewar java.net.MulticastSocket API ba.
  • An inganta kayan aikin IGV (Ideal Graph Visualizer), yana samar da hangen nesa na tsaka-tsakin lambar wakilci a cikin HotSpot VM C2 JIT mai tarawa.
  • A cikin JavaDoc, ta hanyar kwatanci tare da mai tara javac, lokacin da aka fitar da kuskure, ana nuna adadin layin matsala a cikin fayil ɗin tushen da wurin kuskuren yanzu.
  • An ƙara mallakar native.encoding, yana nuna sunan tsarin rufaffiyar haruffa (UTF-8, koi8-r, cp1251, da sauransu).
  • An ƙara ƙirar java.time.InstantSource, yana ba da damar sarrafa lokaci ba tare da nuni ga yankin lokaci ba.
  • An ƙara java.util.HexFormat API don juyawa zuwa wakilcin hexadecimal da akasin haka.
  • An ƙara yanayin blackhole zuwa mai tarawa, wanda ke hana ayyukan kawar da matattu, waɗanda za a iya amfani da su yayin gudanar da gwaje-gwajen aiki.
  • Ƙara "-Xlog: async" zaɓi zuwa Runtime don yin rikodin rajistan ayyukan cikin yanayin asynchronous.
  • Lokacin kafa amintattun haɗi, ana kunna TLS 1.3 ta tsohuwa (a da TLS 1.2 an yi amfani da shi).
  • Applet API ɗin da aka ayyana a baya (java.applet.Applet*, javax.swing.JApplet), wanda aka yi amfani da shi don gudanar da aikace-aikacen Java a cikin mai binciken, an ƙaura zuwa sashin da aka tsara don cirewa (bacewar dacewa bayan ƙarshen tallafi. don plugin ɗin Java don masu bincike).
  • Manajan Tsaro, wanda ya daɗe da rasa abin da ya dace kuma ya zama ba a da'awar bayan ƙarshen tallafi ga plugin ɗin mai binciken, an koma sashin waɗanda aka shirya cirewa.
  • An cire tsarin kunnawa RMI, wanda ya tsufa, an mayar da shi zuwa nau'in zaɓi a Java 8 kuma kusan ba a taɓa amfani da shi ba a aikin zamani.
  • Mai tarawa na gwaji wanda ke goyan bayan JIT (kawai-in-lokaci) don haɓakar tarin lambar Java don HotSpot JVM, da kuma yanayin haɗawa (AOT, gaba-da-lokaci) na azuzuwan cikin lambar injin kafin fara injin kama-da-wane. , an cire shi daga SDK. An rubuta mai tarawa a cikin Java kuma bisa aikin aikin Graal. An lura cewa kulawar mai tarawa yana buƙatar aiki mai yawa, wanda bai dace ba lokacin da babu buƙatar daga masu haɓakawa.

source: budenet.ru

Add a comment