JDK 17: Java 17 の新機能

  • 常に強力な浮動小数点セマンティクス





  • サードパーティの関数とメモリの API





  • 疑似乱数ジェネレーター用の統合 API





Java 17 は 9 月にリリースされる予定ですが、9 つの機能が標準の Java にアップグレードされる予定であり、2 つの機能が削除され、2 つの機能がサポートされなくなりました。5 月 24 日の最新の変更では、スイッチ式のパターン マッチングが追加され、常に強力な浮動小数点セマンティクスが復元されました。





Java Development Kit (JDK) 17 は Long Term Support (LTS) リリースであり、Oracle のサポートが数年間にわたって延長される予定です。OpenJDK の JDK 17 の一部として導入された機能には、次のものがあります。





  • 常に強力な浮動小数点セマンティクスを復元することで、厳密な浮動小数点セマンティクス (strictfp) とわずかに異なるデフォルトの浮動小数点セマンティクスの両方を持つ代わりに、浮動小数点演算は永続的に厳密になります。これにより、言語と仮想マシンの元の浮動小数点セマンティクスが復元され、Java Standard Edition 1.2 にデフォルトで強力な浮動小数点モードが導入される前のセマンティクスと一致します。このコストの目標には、java.lang.Math や java.lang.StrictMath などの数値に敏感なライブラリの開発を促進することが含まれます。 1990 年代後半のデフォルトの浮動小数点セマンティクスを変更するインセンティブ。これは、元の Java 言語と JVM セマンティクスの間の相互作用が不十分であり、一般的な x86 アーキテクチャの x87 浮動小数点コプロセッサ命令セットのいくつかの特殊性が原因で発生しました。非正規のオペランドと結果を含むすべての場合で正確な浮動小数点セマンティクスに準拠するには、追加の命令による大きなオーバーヘッドが必要でした。オーバーフローやアンダーフローのない結果の比較は、より少ないオーバーヘッドで実行できます。これは、Java SE 1.2 で導入された改訂されたデフォルトの浮動小数点セマンティクスで可能になることです。しかし、2001 年頃から Pentium 4 以降のプロセッサで出荷されたストリーミング SIMD 拡張機能 2 (SSE2) は、過度のオーバーヘッドなしに JVM の厳密な浮動小数点演算を直接サポートできました。 Intel と AMD は、強力な浮動小数点セマンティクスのネイティブ サポートを可能にする SSE2 以降の拡張機能をサポートしているため、strict 以外のデフォルトの浮動小数点セマンティクスを使用する技術的な動機はなくなりました。





  • 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 .





    • PRNG オブジェクトのストリームを提供するストリーミング プログラミングのサポートが改善されました。





    • 既存の PRNG クラスのコードの重複を排除します。





    • java.util.Random クラスの既存の動作を保持します。





JDK 17 は 9 月 14 日に公開される予定です。製品版のリリースに先立って、6 月と 7 月のロールアウト フェーズと、8 月の候補者のリリースが行われます。オープン ソースの早期アクセス JDK 17ビルドは、jdk.java.net にあります。





JDK 17 などの LTS リリースは 3 年ごとに登場します。最新の LTS リリースである JDK 11 は、2018 年 9 月に公開されました。Java の新しいバージョンは 6 か月ごとに登場します。








All Articles