Java SE 18 ngabebaskeun

Saatos genep bulan pangwangunan, Oracle parantos ngarilis Java SE 18 (Java Platform, Standard Edition 18), anu ngagunakeun proyék open source OpenJDK salaku palaksanaan rujukan. Iwal ngaleupaskeun sababaraha fitur deprecated, Java SE 18 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 18 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 18 dibuka sapinuhna dina lisénsi GPLv2 kalawan iwal GNU ClassPath pikeun ngidinan linking dinamis kana produk komérsial.

Java SE 18 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 18 kalebet:

  • Encoding standar nyaéta UTF-8. API Java anu ngolah data téks dumasar kana encoding karakter ayeuna bakal nganggo UTF-8 sacara standar dina sadaya platform, henteu paduli setélan sistem sareng setélan lokal. Pikeun balik deui ka kabiasaan heubeul, dimana encoding dipilih dumasar kana lokal sistem, anjeun tiasa nganggo "-Dfile.encoding = COMPAT" pilihan.
  • iket ngawengku com.sun.net.httpserver pakét, nu ngawengku jwebserver utiliti jeung perpustakaan API kalawan palaksanaan hiji http server basajan pikeun porsi eusi statik (CGI na servlet-kawas pawang teu dirojong). Pangladén HTTP anu diwangun henteu dioptimalkeun pikeun beban kerja sareng henteu ngadukung kontrol aksés sareng auténtikasi, sabab tujuanna utamina pikeun dianggo dina prosés pamekaran pikeun prototyping, debugging sareng nguji proyék.
  • JavaDoc nyadiakeun pangrojong pikeun tag "@snippet" pikeun nyelapkeun conto kerja sareng snippét kode kana dokuméntasi API, dimana anjeun tiasa nganggo alat validasi, panyorot sintaksis, sareng integrasi IDE.
  • Palaksanaan java.lang.reflect API (Refleksi Inti), dirancang pikeun ménta informasi ngeunaan métode, widang jeung konstruktor kelas, kitu ogé aksés ka struktur internal kelas, geus redesigned. java.lang.reflect API sorangan tetep unchanged, tapi ayeuna dilaksanakeun ngagunakeun handles metoda disadiakeun ku modul java.lang.invoke, tinimbang make generator bytecode. Parobihan éta ngamungkinkeun urang pikeun ngahijikeun palaksanaan java.lang.reflect sareng java.lang.invoke, sareng nyederhanakeun pangropéana.
  • A sawangan katilu tina API Véktor geus diajukeun, nyadiakeun fungsi pikeun itungan vektor nu dieksekusi 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.
  • Ditambahkeun panganteur SPI (antarmuka panyadia jasa) pikeun ngabéréskeun ngaran host sareng alamat IP, ngamungkinkeun anjeun nganggo solusi alternatif dina java.net.InetAddress anu henteu kabeungkeut ku pawang anu ditawarkeun ku sistem operasi.
  • A sawangan kadua Fungsi Asing & Mémori API disadiakeun, ngamungkinkeun aplikasi pikeun berinteraksi sareng kode jeung data di luar runtime Java. API anyar ngidinan Anjeun pikeun éfisién nelepon fungsi non-JVM sarta aksés memori non-JVM-junun. Contona, anjeun tiasa nelepon fungsi ti perpustakaan dibagikeun éksternal sarta data prosés aksés tanpa ngagunakeun JNI.
  • Palaksanaan ékspérimén kadua pikeun cocog pola dina ekspresi "switch" geus ditambahkeun, sahingga pamakéan pola fléksibel dina labél "kasus" tinimbang nilai pasti, ngawengku runtuyan nilai sakaligus, nu saméméhna perlu ngagunakeun. ranté pajeujeut tina "lamun ... sejenna" ungkapan. Obyék o = 123L; String formatna = switch (o) {kasus Integer i -> String.format("int%d", i); 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(); };
  • Mékanisme finalisasi jeung métode pakait na kayaning Object.finalize (), Enum.finalize (), Runtime.runFinalization () sarta System.runFinalization () geus deprecated sarta bakal ditumpurkeun dina release hareup.
  • Pengumpul sampah ZGC (Z Garbage Collector), SerialGC, sareng ParallelGC ngarojong deduplikasi baris.

sumber: opennet.ru

Tambahkeun komentar