Java SE 18 release

Sawise nem sasi pembangunan, Oracle wis ngeculake platform Java SE 18 (Java Platform, Standard Edition 18), sing nggunakake proyek open source OpenJDK minangka implementasi referensi. Kajaba mbusak sawetara fitur sing ora digunakake, Java SE 18 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 18 (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 18 minangka sumber terbuka kanthi lisensi GPLv2 kanthi pangecualian GNU ClassPath supaya bisa nyambung dinamis menyang produk komersial.

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

  • Encoding standar yaiku UTF-8. Java API sing ngolah data teks adhedhasar enkoding karakter saiki bakal nggunakake UTF-8 minangka standar ing kabeh platform, preduli saka setelan sistem lan setelan lokal. Kanggo bali menyang prilaku lawas, ngendi enkoding dipilih adhedhasar lokal sistem, sampeyan bisa nggunakake "-Dfile.encoding = COMPAT" pilihan.
  • Paket kalebu paket com.sun.net.httpserver, kang kalebu sarana jwebserver lan perpustakaan API karo implementasine saka server http prasaja kanggo porsi isi statis (CGI lan servlet-kaya pawang ora didhukung). Server HTTP sing dibangun ora dioptimalake kanggo beban kerja lan ora ndhukung kontrol akses lan otentikasi, amarga tujuane utamane digunakake ing proses pangembangan kanggo prototipe, debugging lan uji coba.
  • JavaDoc nyedhiyakake dhukungan kanggo tag "@snippet" kanggo nampilake conto kerja lan potongan kode menyang dokumentasi API, ing ngendi sampeyan bisa nggunakake alat validasi, nyorot sintaks, lan integrasi IDE.
  • Implementasine java.lang.reflect API (Inti Refleksi), dirancang kanggo njupuk informasi bab cara, lapangan lan konstruktor kelas, uga akses kanggo struktur internal saka kelas, wis dirancang maneh. java.lang.reflect API dhewe tetep ora diganti, nanging saiki dileksanakake nggunakake cara nangani diwenehake dening modul java.lang.invoke, tinimbang nggunakake generator bytecode. Owah-owahan kasebut ngidini kita nggabungake implementasine java.lang.reflect lan java.lang.invoke, lan nyederhanakake pangopΓ¨nan.
  • Pratinjau kaping telu saka Vector API wis diusulake, nyedhiyakake fungsi kanggo petungan vektor sing dieksekusi 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.
  • Nambahake antarmuka SPI (antarmuka panyedhiya layanan) kanggo mutusake masalah jeneng host lan alamat IP, ngidini sampeyan nggunakake solusi alternatif ing java.net.InetAddress sing ora ana gandhengane karo pawang sing ditawakake sistem operasi.
  • Pratinjau kapindho saka Foreign Function & Memory API diwenehake, ngidini aplikasi bisa sesambungan karo kode lan data ing njaba runtime Java. API anyar ngidini sampeyan nelpon fungsi non-JVM kanthi efisien lan ngakses memori sing ora dikelola JVM. Contone, sampeyan bisa nelpon fungsi saka perpustakaan sing dienggo bareng eksternal lan ngakses data proses tanpa nggunakake JNI.
  • Implementasi eksperimen kapindho saka pencocokan pola ing ekspresi "switch" wis ditambahake, ngidini nggunakake pola fleksibel ing label "kasus" tinimbang nilai sing tepat, nyakup serangkaian nilai sekaligus, sing sadurunge kudu digunakake. rentengan rumit saka ungkapan "yen ... liya". Obyek o = 123L; String formatted = switch (o) { case 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(); };
  • Mekanisme finalisasi lan cara sing gegandhengan kayata Object.finalize (), Enum.finalize (), Runtime.runFinalization () lan System.runFinalization () wis ora digunakake lan bakal dipateni ing release mangsa ngarep.
  • Pengumpul sampah ZGC (Z Garbage Collector), SerialGC, lan ParallelGC ndhukung deduplikasi baris.

Source: opennet.ru

Add a comment