JDK 17: Novos recursos em Java 17

  • Semântica de ponto flutuante sempre forte





  • API de funções e memória de terceiros





  • API unificada para geradores de números pseudo-aleatórios





O Java 17, com lançamento previsto para setembro, continua a tomar forma, com nove recursos planejados para uma atualização para o Java padrão, e dois recursos estão sendo removidos e dois recursos não são mais suportados. As alterações mais recentes, a partir de 24 de maio, adicionaram a correspondência de padrões para expressões de switch e restauraram a semântica de ponto flutuante sempre forte.





O Java Development Kit (JDK) 17 será um lançamento de Long Term Support (LTS), com suporte estendido para Oracle previsto para vários anos. Os recursos introduzidos como parte do JDK 17 do OpenJDK incluem o seguinte:





  • Com a restauração da semântica de ponto flutuante sempre forte, as operações de ponto flutuante serão permanentemente estritas, em vez de ter semântica estrita de ponto flutuante (strictfp) e semântica de ponto flutuante padrão ligeiramente diferente. Isso restaura a semântica de ponto flutuante original para a linguagem e a máquina virtual, correspondendo à semântica antes da introdução dos modos de ponto flutuante e forte por padrão no Java Standard Edition 1.2. Os objetivos desse custo incluem facilitar o desenvolvimento de bibliotecas numéricas sensíveis, incluindo java.lang.Math e java.lang.StrictMath. O incentivo para mudar a semântica de ponto flutuante padrão no final dos anos 1990. foi causado pela má interação entre a linguagem Java original e a semântica da JVM, bem como algumas peculiaridades do conjunto de instruções do coprocessador de ponto flutuante x87 da arquitetura x86 popular.A conformidade com a semântica exata de ponto flutuante em todos os casos, incluindo operandos e resultados subnormais, exigiu uma grande sobrecarga de instruções adicionais. A comparação de resultados sem estouro ou estouro negativo pode ser feita com menos sobrecarga, que é sobre o que a semântica de ponto flutuante padrão revisada introduzida no Java SE 1.2 permite. Mas o Streaming SIMD Extensions 2 (SSE2) enviado com Pentium 4 e processadores posteriores a partir de 2001 foram capazes de suportar diretamente as operações de ponto flutuante estrito da JVM sem sobrecarga excessiva. Como a Intel e a AMD suportam SSE2 e extensões posteriores, que permitem suporte nativo para semântica de ponto flutuante forte,a motivação técnica para usar a semântica de ponto flutuante padrão diferente de estrita não existe mais.





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





    • Suporte aprimorado para programação de streaming, fornecendo fluxos de objetos PRNG.





    • Elimine a duplicação de código em classes PRNG existentes.





    • Preservando o comportamento existente da classe java.util.Random.





O JDK 17 está programado para ir ao público em 14 de setembro. O lançamento da produção será precedido por fases de lançamento em junho e julho, e o lançamento de candidatos em agosto. As compilações JDK 17 de acesso antecipado de código aberto podem ser encontradas em jdk.java.net .





Lançamentos LTS como JDK 17 aparecem a cada três anos. A versão mais recente do LTS, JDK 11, foi publicada em setembro de 2018. Novas versões do Java aparecem a cada seis meses.








All Articles