Semantik floating point selalu kuat
API fungsi dan memori pihak ketiga
API Terpadu untuk generator nomor pseudo-acak
Java 17, yang akan keluar pada bulan September, terus terbentuk, dengan sembilan fitur yang direncanakan untuk ditingkatkan ke Java standar, dan dua fitur dihapus dan dua fitur tidak lagi didukung. Perubahan terbaru, pada 24 Mei, menambahkan pencocokan pola untuk ekspresi sakelar dan memulihkan semantik floating point yang selalu kuat.
Java Development Kit (JDK) 17 akan menjadi rilis Long Term Support (LTS), dengan dukungan diperpanjang untuk Oracle diharapkan selama beberapa tahun. Fitur-fitur yang diperkenalkan sebagai bagian dari JDK 17 OpenJDK meliputi:
Dengan mengembalikan semantik floating point yang selalu kuat, operasi floating point akan ketat secara permanen, alih-alih memiliki semantik floating point yang ketat (strictfp) dan semantik floating point default yang sedikit berbeda. Ini mengembalikan semantik floating point asli untuk bahasa dan mesin virtual, mencocokkan semantik sebelum pengenalan mode strong dan floating point secara default di Java Standard Edition 1.2. Tujuan dari biaya ini termasuk untuk memfasilitasi pengembangan perpustakaan yang sensitif terhadap numerik, termasuk java.lang.Math dan java.lang.StrictMath. Insentif untuk mengubah semantik floating point default di akhir 1990-an. disebabkan oleh interaksi yang buruk antara bahasa Java asli dan semantik JVM, serta beberapa keanehan dari set instruksi koprosesor titik mengambang x87 dari arsitektur x86 yang populer.Kesesuaian dengan semantik floating point yang tepat dalam semua kasus, termasuk operan dan hasil di bawah normal, memerlukan overhead instruksi tambahan yang besar. Perbandingan hasil tanpa overflow atau underflow dapat dilakukan dengan overhead yang lebih sedikit, yaitu tentang apa yang diizinkan oleh semantik floating point default yang direvisi yang diperkenalkan di Java SE 1.2. Tetapi Streaming SIMD Extensions 2 (SSE2) yang dikirimkan dalam Pentium 4 dan prosesor yang lebih baru mulai sekitar tahun 2001 dapat secara langsung mendukung operasi floating point ketat JVM tanpa overhead yang berlebihan. Karena Intel dan AMD mendukung SSE2 dan ekstensi yang lebih baru, yang memungkinkan dukungan asli untuk semantik floating point yang kuat,motivasi teknis untuk menggunakan semantik floating point default selain ketat sudah tidak ada lagi.
Security Manager, . Java 1.0, Security Manager Java . - , API , Security Manager, , System::exit. Security Manager Applet API, JDK 17.
switch Java, switch , . , . switch case, switch : , , . JDK 16 instanceof , . instanceof-and-cast.
JDK, API, misc.unsafe, , JDK 9 - JDK 16. JDK, API.
(RMI) RMI. RMI , JDK 15.
API , , Java Java. , .. JVM, , .. , JVM, API Java JNI (Java Native Interface). API API - API API . API Java 14 2019 API Java 15 Java 16. API Java 16 API 2020 . API , , .
JDK 16 API, vector API JDK 17, , . , . JDK 17 vector API , .
-
AOT JIT, , . JVM Java, JIT-. AOT ( jaotc) JDK 9 . Graal, Java, AOT. JDK 16, Oracle, . , JDK : jdk.aot ( jaotc); internal.vm.compiler, Graal; jdk.internal.vm.compiler.management, MBean Graal. HotSpot, AOT.
JDK MacOS / AArch64 Apple Macintosh x64 AArch64. AArch64 Java Linux, Windows. Java AArch64 , , JDK, , . MacOS / AArch64 Linux / AArch64, Windows / AArch64 MacOS / x64, .
Applet API . API , - Java, . Applet API , Java 9 2017 .
MacOS, Apple Metal API , API OpenGL. Java 2D API, MacOS Metal, , Apple OpenGL API MacOS. , OpenGL, , . , 2D- Java. OpenGL , . - API- Java JDK.
, (PRNG), PRNG PRNG (LXM). RandomGenerator API PRNG. RandomGenerator. - Java. PRNG. , . :
PRNG .
Dukungan yang ditingkatkan untuk pemrograman streaming yang menyediakan aliran objek PRNG.
Hilangkan duplikasi kode di kelas PRNG yang ada.
Mempertahankan perilaku kelas java.util.Random yang ada.
JDK 17 dijadwalkan untuk go public pada 14 September. Rilis produksi akan didahului dengan fase peluncuran pada bulan Juni dan Juli, dan rilis kandidat pada bulan Agustus. Akses awal open source JDK 17 build dapat ditemukan di jdk.java.net .
Rilis LTS seperti JDK 17 muncul setiap tiga tahun. Rilis LTS terbaru, JDK 11, diterbitkan pada September 2018. Versi baru Java muncul setiap enam bulan.