Bayan watanni shida na haɓakawa, Oracle ta fitar da Java SE 26 (Java Platform, Standard Edition 26), wanda ke amfani da aikin OpenJDK mai buɗewa a matsayin aiwatar da shi. Banda cire wasu fasaloli da suka lalace, Java SE 26 yana kula da daidaiton baya tare da fitowar dandamalin Java na baya - yawancin ayyukan Java da aka rubuta a baya ba za su canza ba lokacin da suke gudana a ƙarƙashin sabon sigar. An shirya gina Java SE 26 (JDK, JRE, da Server JRE) don shigarwa Linux (x86_64, AArch64), Windows (x86_64) kuma macOS (x86_64, AArch64). An haɓaka ta hanyar aikin OpenJDK, aiwatar da Java SE 26 na asali a buɗe yake a ƙarƙashin lasisin GPLv2 tare da GNU ClassPath Exception, wanda ke ba da damar haɗin kai mai ƙarfi tare da samfuran kasuwanci.
An rarraba Java SE 26 a matsayin sakin tallafi na yau da kullun, tare da sabuntawa har zuwa fitowar ta gaba. Ya kamata reshen tallafi na dogon lokaci (LTS) ya zama Java SE 25, Java SE 21, ko Java SE 17, tare da sabuntawa har zuwa 2033, 2031, da 2029, bi da bi (galibi ana samun su har zuwa Satumba 2030, 2028, da 2026). Tallafin da aka tsawaita wa reshen Java SE 8 LTS zai ci gaba har zuwa 2030, da kuma Java SE 11, har zuwa 2032.
Canje-canje a cikin Java SE 26 (1, 2, 3, 4) sun haɗa da:
- An aiwatar da gargaɗi yayin amfani da zurfin tunani don gyara filayen da aka yiwa alama da kalmar "ƙarshe". Shirye-shiryen gaba sun haɗa da kashe fasalulluka na harshe marasa aminci ta hanyar tsoho, da kuma, a tsakanin sauran abubuwa, sanya filayen da aka yiwa alama a matsayin na ƙarshe ba za a iya canzawa ba, cire hanyar magance matsalar gyara su ta hanyar zurfin tunani (API na Tunani).
- An cire Applet API (java.applet.Applet*, javax.swing.JApplet), wanda ake amfani da shi wajen gudanar da aikace-aikacen Java a cikin burauzar. Wannan API ya tsufa bayan an daina amfani da plugin ɗin burauzar Java kuma an daina amfani da shi a shekarar 2021.
- An aiwatar da ikon amfani da ma'ajiyar ajiya ta gaba (AOT) tare da duk wani mai tattara shara, gami da ZGC (Z Garbage Collector). Wannan canjin yana goyan bayan loda abubuwan Java da aka adana a cikin ƙwaƙwalwar ajiya ta amfani da tsari na duniya, wanda ba shi da alaƙa da masu tattara shara maimakon zana taswirar takamaiman ma'ajiyar bayanai kai tsaye zuwa ƙwaƙwalwar ajiya. Amfani da ma'ajiyar ajiya ta AOT yana rage lokacin farawa kuma yana hanzarta ɗumamar na'urar kama-da-wane ta HotSpot.
- An sabunta HTTP Client API don tallafawa yarjejeniyar HTTP/3, yana bawa aikace-aikace da ɗakunan karatu damar shiga sabar ta hanyar HTTP/3 tare da ƙarancin canje-canjen lamba.
- Inganta aikin mai tattara shara na G1 ta hanyar rage makullan da ake buƙata don daidaita zaren aikace-aikace da zaren mai tattara shara.
- An gabatar da daftarin API na biyu don ɓoyewa da ɓoye abubuwa ta amfani da maɓallan ɓoye bayanai, takaddun shaida, da jerin soke takaddun shaida ta amfani da tsarin PEM (Pivacy-Enhanced Mail).
- An fitar da daftarin API na shida mai suna Structured Concurrency API, wanda ke sauƙaƙa haɓaka aikace-aikacen multithreaded ta hanyar ɗaukar ayyuka da yawa da ke gudana akan zare daban-daban a matsayin naúrar guda ɗaya, don gwaji.
- An ƙara samfoti na biyu na Lazy Constants API don aiki tare da abubuwa da ke ɗauke da bayanai marasa canzawa kuma an ɗauke su a matsayin masu canzawa a cikin JVM. Ana amfani da ingantattun ayyuka masu kama da filayen da ke da kalmar "ƙarshe" ga irin waɗannan abubuwa. Ba kamar "ƙarshe ba," sabon API yana raba ƙirƙirar ƙimomin da suka dace daga farawarsu, yana ba da tabbacin cewa za a iya fara ƙima sau ɗaya kawai, yana rage lokacin farawa na shirin, kuma yana ba da damar ingantawa akai-akai, wanda a da ake amfani da shi kawai a cikin lambar ciki ta JDK, don amfani da shi a cikin lambar mai amfani. aji Aikace-aikacen { // A baya: // static final UserService USERS = new UserService(); // Yanzu: static final StableValue USERS = StableValue.na(); public static UserService users() { dawo da USERS.orElseSet(UserService::sabon); }}
- Injin daidaita tsarin yana gabatar da daftarin aiki na huɗu na ikon amfani da nau'ikan asali (int, byte, char, da sauran nau'ikan tushe marasa abu) a cikin duk nau'ikan samfura, misalin mai aiki, da toshewar maɓallan. switch (x.getStatus()) { case 0 -> "ok"; case 1 -> "gargaɗi"; case 2 -> "error"; case int i -> "unknown status: " + i; } if (i misali na byte b) { … b … }
- An gabatar da gwaji na goma sha ɗaya na Vector API. Yana ba da ayyuka don lissafin vector da aka yi ta amfani da umarnin vector na processor x86_64 da AArch64 kuma yana ba da damar aiki a lokaci guda akan ƙima da yawa (SIMD). Ba kamar yadda HotSpot JIT compiler ke sarrafa ayyukan scalar ta atomatik ba, sabon API yana ba da damar sarrafawa a sarari akan vectorization don sarrafa bayanai masu layi ɗaya.
Oracle ya kuma sanar da Project Detroit, wanda za a haɓaka a matsayin wani ɓangare na OpenJDK kuma yana da nufin inganta sauƙin ɗauka tsakanin Java, JavaScript, da Python. Aikin yana da nufin ba da damar haɗa injin V8 JavaScript da mai fassara CPython cikin tsarin JVM. Oracle ya riga ya ƙirƙiro injin Nashorn JavaScript, wanda ke aiki a saman JVM, amma ya dakatar da aikin saboda wahalar ƙirƙirar aiwatar da JavaScript daban lokacin da aka haɗa babban tsarin halittu da injin V8.
Bugu da ƙari, muna farin cikin sanar da fitar da sabuntawa ga dandamalin JavaFX 26 don ƙirƙirar aikace-aikacen haɗin gwiwar mai amfani. Ana kuma sa ran fitar da na'urar kama-da-wane ta GraalVM 26 ta duniya, wacce ke tallafawa gudanar da aikace-aikace a cikin JavaScript (Node.js), Python, Ruby, R, kowane harshe na JVM (Java, Scala, Clojure, Kotlin), da harsunan da za a iya samar da lambar bit ɗin LLVM (C, C++, Rust), a cikin sa'o'i masu zuwa.
source: budenet.ru
