Mushure memwedzi mitanhatu yebudiriro, Oracle yakaburitsa iyo Java SE 23 chikuva (Java Platform, Standard Edition 23), iyo inoshandisa iyo yakavhurika-sosi OpenJDK purojekiti sereferensi yekushandisa. Kunze kwekubviswa kwemamwe maficha echinyakare, Java SE 23 inochengetedza kuenderana nekumashure kuburitswa kweJava papuratifomu - mapurojekiti mazhinji akanyorwa kare eJava achashanda pasina shanduko kana ichiitwa pasi peiyo vhezheni itsva. Yakagadzirira-kuisa-kuvaka kweJava SE 22 (JDK, JRE uye Server JRE) yakagadzirirwa Linux (x86_64, AArch64), Windows (x86_64) uye macOS (x86_64, AArch64). Yakagadzirwa neiyo OpenJDK purojekiti, iyo Java 23 referensi yekumisikidza yakavhurika zvizere pasi peGPLv2 rezinesi, ine GNU ClassPath inosarudzika inobvumira kubatanidza zvine simba nezvigadzirwa zvekutengesa.
Java SE 23 inorongedzerwa seyakajairwa tsigiro kuburitswa uye icharamba ichigashira zvigadziriso kusvika kuburitswa kunotevera. Iro Long Term Support (LTS) bazi rinofanira kunge riri Java SE 21 kana Java SE 17, iyo inogashira zvigadziriso kusvika 2031 na2029, zvichiteerana (inowanzo kuwanikwa kusvika 2028 na2026). Yakawedzerwa rutsigiro rwebazi reLTS reJava SE 8 richagara kusvika 2030, uye Java SE 11 kusvika 2032.
Pakati pemagadzirirwo makumi maviri nematatu akakurudzirwa muJava SE:
- Iyo generative mode yekushanda kweZGC (Generation Z Garbage Collector) muunganidzi wemarara inogoneswa nekusarudzika, uchishandisa yakaparadzana kugadziridzwa kwezvinhu "zvekare" uye "zvidiki" zvinhu, izvo zvinowedzera kugona kwekuchenesa zvichangobva kugadzirwa zvinhu nehupenyu hupfupi. Kushandisa Generational ZGC kunoderedza njodzi yezviteshi panguva yekugova zviwanikwa, kunoderedza CPU mutoro uye ndangariro kushandiswa panguva yekuunganidza marara. Testing Generational ZGC neApache Cassandra 4 yakaratidza kuwedzera kwe4x muhuwandu nehukuru hwakagadziriswa hwemurwi uye kuderedzwa kwekota mukukura kwemurwi nekuramba kuripo.
- JavaDoc yakawedzera rutsigiro rwekushandisa Markdown kunyora kodhi mune makomendi, iyo inogona kushandiswa panzvimbo yemusanganiswa weHTML neJavaDoc @ tags.

- Maitiro ekufananidza maitiro akakwidziridzwa nerutsigiro rwekutanga rwekushandiswa kwemhando dzechinyakare (int, byte, char, uye mamwe asiri-chinhu chakakosha mhando) mumarudzi ese ematemplate, mune "chiitiko che" chirevo, uye mu "switch" mabhuroko. chinja (x.getStatus()) {nyaya 0 -> "zvakanaka"; nyaya 1 -> "yambiro"; nyaya 2 -> "kukanganisa"; case int i -> "chimiro chisingazivikanwe: ” + i; } kana (ini muenzaniso webhaiti b) { … b … }
- Yakawedzerwa yekutanga rutsigiro rwekushandisa imwechete "import module M" chirevo kupinza ese mapakeji anotengeswa kunze neyakatsanangurwa module kamwechete. Shanduko iyi inorerutsa kushandiswazve kwemamodular raibhurari, zvichikubvumidza kuti ubatanidze maraibhurari uye makirasi pasina kuona nzvimbo yavo mupakeji hierarchy. Semuyenzaniso, kudoma "import module java.base" kunopinza ese mapakeji makumi mashanu nemana akaiswa mujava.base module, izvo zvaimboda kutaurwa zvakasiyana ("import java.io.*", "import java.util.* ” nezvimwewo).
Yechipiri yekutanga kuitiswa kweKirasi-Faira API inokurudzirwa kupatsanura, kugadzira, uye kushandura Java kirasi mafaera. ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(bytes); byte[] newBytes = cf.vaka(classModel.thisClass().asSymbol(), classBuilder -> {ye (ClassElement ce : classModel) {kana (!(ce exampleof MethodModel mm && mm.methodName().stringValue(). startsWith("debug"))) {classBuilder.with(ce);
- Yechisere yekutarisa yeVector API 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 kukosha (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.
- Yakawedzerwa fomati, printf, readPassword uye readLine nzira kune java.io.Console kirasi kufomati, kuratidza uye kuverenga zvinyorwa zvinoenderana nenzvimbo yakasarudzwa. System.console().printf(Locale.FRANCE, "%1$tY-%1$tB-%1$te %1$tA", new Date()) 2024-mai-16 jeudi
- Yechipiri yekutarisa kuitiswa kweiyo yakawedzera Stream API yakawedzerwa inotsigira kutsanangura yako wega epakati mashandiro, ayo anogona kubatsira mumamiriro ezvinhu apo aripo akavakirwa-mukati epakati mashandiro asina kukwana kune inodiwa shanduko yedata. Vabati veNative vakabatana vachishandisa iyo nyowani yepakati mashandiro Kuyerera ::kuunganidza(Gatherer), iyo inogadzirisa zvinhu zvekuyerera nekushandisa mushandisi-akatsanangurwa mubati kwavari. jshell> Stream.of(1,2,3,4,5,6,7,8,9).gather(itsva WindowFixed(3)).toList() $1 ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]
- Yakawedzera yechitatu yekutanga kushandiswa kwemakirasi akaziviswa zvisina kutaurwa uye asina kudomwa mazita e "main" nzira, iyo inogona kuburitsa pachena/inomira zviziviso, ichipfuura nhevedzano yenharo, uye zvimwe masangano ane chekuita neclass declaration. // yaive yeruzhinji kirasi HelloWorld {public static void main(String[] args) {System.out.println("Mhoro nyika!"); } } // ikozvino unogona kubvisa chikuru() {System.out.println("Mhoro, Nyika!"); }
- Yakawedzera chitarisiko chechipiri chechinhu chinobvumira vavaki kuti vataure mataurirwo vasati vadaidza super(...), inoshandiswa kudaidza zvakajeka muvaki wekirasi yevabereki kubva kumuvaki wekirasi yakagarwa nhaka kana iwo mataurirwo asingarevi chiitiko chakagadzirwa nemuvaki. class Outer {void hello() {System.out.println("Mhoro"); } kirasi Inner { Inner() {hesi(); super(); }}}
- Yakawedzera yechitatu yekutarisa kuitiswa kweScoped Values, ichibvumira isingachinjike data kugovaniswa mukati meshinda uye data rakatsinhana zvinobudirira pakati petambo dzemwana (tsika dzakagarwa). Scoped Values iri kuvandudzwa kutsiva iyo shinda-yenzvimbo inoshanduka uye inoshanda zvakanyanya kana uchishandisa yakakura kwazvo tambo tambo (zviuru kana mamirioni eshinda). Musiyano mukuru pakati peScoped Values uye shinda-yenzvimbo inosiyana ndeyekuti yekutanga yakanyorwa kamwe chete, haigone kuchinjwa mune ramangwana, uye inoramba iripo chete kwenguva yekuitwa kwetambo.
- Chechitatu chekutarisisa cheStructured Concurrency API chakakurudzirwa kuti chiedzwe, kurerutsa kuvandudza kweakawanda-tambo maapplication nekugadzirisa akawanda mabasa anomhanya mushinda dzakasiyana sechivharo chimwe.
- Nzira dzekunze dzekuwana ndangariro (kunze kweJVM) dzakapihwa nezuva.misc.Unsafe kirasi dzakaregwa uye dzakarongwa kubviswa. Kuti uwane off-heap memory uye kupindirana nekodhi yekunze, zvinokurudzirwa kushandisa VarHandle API uye FFM (Foreign Function & Memory) API.
Pamusoro pezvo, isu tinogona kucherechedza kuburitswa kweshanduro kupuratifomu yekugadzira maapplication neJavaFX 23 graphical interface uye kuisirwa kweGraalVM JIT compiler mune hombe Oracle JDK 23.
Inoratidzwawo kuburitswa kutsva kwemuchina wepasirese weGraalVM, unotsigira kushanda kweJavaScript (Node.js), Python, Ruby, R, chero mitauro yeJVM (Java, Scala, Clojure, Kotlin) nemitauro iyo LLVM bitcode inogona kugadzirwa (C, C++, Rust). Pamusoro pekutsigira JDK 23, iyo vhezheni nyowani inokwidziridza mashandisirwo endangariro uye saizi yekodhi kodhi, uye inopa rutsigiro rwakazara rwematurusi ekumisikidza Python uye WebAssembly muJava kodhi uchishandisa JIT kuunganidzwa.
Source: opennet.ru

