Java SE 20 release

Sawise nem sasi pembangunan, Oracle wis ngeculake platform Java SE 20 (Java Platform, Standard Edition 20), sing nggunakake proyek open source OpenJDK minangka implementasi referensi. Kajaba mbusak sawetara fitur sing ora digunakake, Java SE 20 njaga kompatibilitas mundur karo platform Java sing diluncurake sadurunge-proyèk Jawa sing paling ditulis sadurunge isih bisa digunakake tanpa modifikasi nalika diluncurake ing versi anyar. Bangun Java SE 20 (JDK, JRE, lan Server JRE) sing bisa diinstal disiapake kanggo Linux (x86_64, AArch64), Windows (x86_64), lan macOS (x86_64, AArch64). Dikembangake dening proyek OpenJDK, implementasi referensi Java 20 minangka sumber terbuka kanthi lisensi GPLv2 kanthi pangecualian GNU ClassPath supaya bisa nyambung dinamis menyang produk komersial.

Java SE 20 dikategorikake minangka rilis dhukungan reguler, kanthi nganyari bakal dirilis sadurunge rilis sabanjure. Cabang Dhukungan Jangka Panjang (LTS) kudu Java SE 17, sing bakal nampa nganyari nganti 2029. Elinga yen wiwit rilis Java 10, proyek kasebut pindhah menyang proses pangembangan anyar, sing nuduhake siklus sing luwih cendhek kanggo pambentukan rilis anyar. Fungsi anyar saiki lagi dikembangake ing siji cabang master sing terus dianyari, sing nggabungake owah-owahan sing wis rampung lan cabang sing dicabang saben nem sasi kanggo nyetabilake rilis anyar.

Fitur anyar ing Java 20 kalebu:

  • Ana dhukungan awal kanggo Scoped Values, ngidini data sing ora bisa diganti bisa dienggo bareng ing benang lan data sing diijolke kanthi efisien ing antarane benang anak (nilai diwarisake). Scoped Values ​​dikembangake kanggo ngganti mekanisme variabel lokal lan luwih efisien nalika nggunakake benang virtual sing akeh banget (ewonan utawa mayuta-yuta benang). Bentenipun utama antarane Scoped Values ​​lan variabel thread-lokal yaiku sing mantan ditulis sapisan, ora bisa diganti ing mangsa ngarep, lan tetep kasedhiya mung kanggo durasi eksekusi thread. class Server {ScopedValue statis final CURRENT_USER = ScopedValue anyar(); void serve(Request request, Response response) { var level = (request. isAuthorized()? ADMIN : GUEST); var panganggo = panganggo anyar (level); ScopedValue.where(CURRENT_USER, pangguna).run(() -> Application.handle(request, response)); }}kelas DatabaseManager {DBConnection open() {var user = Server.CURRENT_USER.get(); yen (! user.canOpen ()) uncalan InvalidUserException anyar (); bali DBConnection anyar (...); }}
  • Pratinjau pola rekaman kapindho wis ditambahake, ngluwihi fitur pencocokan pola sing dikenalake ing Jawa 16 kanggo ngurai nilai kelas rekaman. Contone: ngrekam Point(int x, int y) {} statis void printSum(Obyek obj) { yen (obj instanceof Point p) { int x = px(); int y = py(); System.out.println(x+y); }}
  • Implementasi pendahuluan kaping papat saka pencocokan pola ing statement "switch" wis ditambahake, ngidini label "kasus" ora nggunakake nilai sing tepat, nanging pola fleksibel sing nutupi sawetara nilai bebarengan, sing sadurunge kudu nggunakake cumbersome. rentengan "yen ... liya". statis String formatterPatternSwitch(Obyek obj) { ngalih bali (obj) {kasus Integer i -> String.format("int%d",i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f",d); case String s -> String.format("String %s", s); standar -> o.toString(); }; }
  • A implementasine pambuka kapindho FFM (Fungsi Manca & Memori) API wis ditambahake, sing ngijini sampeyan kanggo ngatur interaksi program Jawa karo kode external lan data liwat fungsi nelpon saka perpustakaan external lan ngakses memori njaba JVM.
  • Pratinjau kapindho utas virtual wis ditambahake, yaiku benang entheng sing nyederhanakake nulis lan njaga aplikasi multi-utas kanthi kinerja dhuwur.
  • Nambahake API eksperimen kapindho kanggo paralelisme terstruktur, sing nyederhanakake pangembangan aplikasi multi-threaded kanthi nambani macem-macem tugas sing mlaku ing benang sing beda-beda minangka blok siji.
  • Pratinjau kaping lima saka Vector API wis ditambahake, nyedhiyakake fungsi kanggo petungan vektor sing ditindakake kanthi nggunakake instruksi vektor ing prosesor x86_64 lan AArch64 lan ngidini operasi bisa diterapake bebarengan ing sawetara nilai (SIMD). Boten kados kapabilitas kasedhiya ing kompiler HotSpot JIT kanggo otomatis-vektorisasi operasi skalar, API anyar ndadekake iku bisa kanggo tegas kontrol vectorization kanggo Processing data podo.

Source: opennet.ru

Add a comment