Java SE 20 ngabebaskeun

Saatos genep bulan pangwangunan, Oracle parantos ngarilis Java SE 20 (Java Platform, Standard Edition 20), anu ngagunakeun proyék open source OpenJDK salaku palaksanaan rujukan. Iwal ngaleupaskeun sababaraha fitur deprecated, Java SE 20 mertahankeun kasaluyuan mundur kalawan release saméméhna tina platform Java-proyék Java paling ditulis saméméhna bakal tetep jalan tanpa modifikasi lamun ngajalankeun dina versi anyar. Wangunan Java SE 20 anu tiasa dipasang (JDK, JRE, sareng Server JRE) disiapkeun pikeun Linux (x86_64, AArch64), Windows (x86_64), sareng macOS (x86_64, AArch64). Dimekarkeun ku proyék OpenJDK, palaksanaan rujukan Java 20 dibuka sapinuhna dina lisénsi GPLv2 kalawan iwal GNU ClassPath pikeun ngidinan linking dinamis kana produk komérsial.

Java SE 20 dikatégorikeun salaku sékrési dukungan biasa, sareng apdet bakal dileupaskeun sateuacan rilis salajengna. Cabang dukungan jangka panjang (LTS) kedahna Java SE 17, anu bakal nampi apdet dugi ka 2029. Émut yén dimimitian ku sékrési Java 10, proyék éta ngalih kana prosés pangembangan énggal, anu nunjukkeun siklus anu langkung pondok pikeun formasi sékrési énggal. Pungsi anyar ayeuna dikembangkeun dina hiji cabang master anu terus diropéa, anu kalebet parobihan anu parantos réngsé sareng cabang mana cabangna unggal genep bulan pikeun nyaimbangkeun sékrési énggal.

Fitur anyar dina Java 20 kalebet:

  • Aya pangrojong awal pikeun Scoped Values, anu ngamungkinkeun data anu teu tiasa dirobih dibagi kana utas sareng data anu disilihtukeurkeun sacara efisien antara benang anak (nilai diwariskeun). Scoped Values ​​nuju dikembangkeun pikeun ngagentos mékanisme variabel thread-lokal sareng langkung éfisién nalika nganggo jumlah utas virtual anu ageung (rébuan atanapi jutaan utas). Beda utama antara Nilai Scoped jeung variabel thread-lokal nyaéta yén urut ditulis sakali, teu bisa dirobah dina mangsa nu bakal datang, sarta tetep sadia ngan pikeun durasi palaksanaan thread urang. kelas Server {scopedValue statik final CURRENT_USER = ScopedValue anyar (); batal ngawula (Paménta pamundut, Tanggapan respon) {var tingkat = (pamundut. isAuthorized ()? ADMIN: TAMU); var pamaké = pamaké anyar (tingkat); ScopedValue.where (CURRENT_USER, pamaké) .run (() -> Application.handle (pamundut, respon)); }}kelas DatabaseManager {DBConnection open() {var user = Server.CURRENT_USER.get(); lamun (! user.canOpen ()) buang InvalidUserException anyar (); balikkeun DBConnection anyar (...); }}
  • Sawangan kadua pola rékaman geus ditambahkeun, ngalegaan fitur cocog pola diwanohkeun dina Java 16 pikeun parse nilai kelas rékaman. Contona: catetan Point (int x, int y) {} statik batal printSum (Objék obj) {lamun (obj instanceof Point p) {int x = px (); int y = py(); System.out.println(x+y); }}
  • Palaksanaan awal kaopat tina cocog pola dina pernyataan "switch" geus ditambahkeun, sahingga labél "kasus" ngagunakeun nilai teu pasti, tapi pola fléksibel nu nutupan runtuyan nilai sakaligus, nu saméméhna perlu ngagunakeun pajeulit. rante babasan "lamun...lain". statik String formatterPatternSwitch (Objék obj) {balik switch (obj) {kasus Integer i -> String.format ( "int% d", abdi); kasus Panjang l -> String.format("panjang%d", l); kasus Double d -> String.format("ganda%f", d); kasus String s -> String.format("String%s", s); standar -> o.toString(); }; }
  • A palaksanaan awal kadua FFM (Fungsi Asing & Mémori) API geus ditambahkeun, nu ngidinan Anjeun pikeun ngatur interaksi program Java kalawan kode éksternal sarta data ngaliwatan nelepon fungsi ti perpustakaan éksternal sarta aksés memori luar JVM.
  • Tilik kadua benang maya geus ditambahkeun, nu mangrupakeun threads lightweight nu greatly simplify tulisan jeung ngajaga-kinerja tinggi multi-threaded aplikasi.
  • Ditambahkeun API ékspérimén kadua pikeun paralelisme terstruktur, nu simplifies ngembangkeun aplikasi multi-threaded ku ngubaran sababaraha pancén ngajalankeun dina threads béda salaku blok tunggal.
  • A sawangan kalima tina API Véktor geus ditambahkeun, nyadiakeun fungsi pikeun itungan vektor anu dipigawé maké instruksi vektor on x86_64 na prosesor AArch64 sarta ngidinan operasi pikeun dilarapkeun sakaligus ka sababaraha nilai (SIMD). Beda sareng kamampuan anu disayogikeun dina kompiler HotSpot JIT pikeun otomatis-vektorisasi operasi skalar, API anyar ngamungkinkeun sacara eksplisit ngadalikeun vektorisasi pikeun ngolah data paralel.

sumber: opennet.ru

Tambahkeun komentar